Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4d57a393a8 | ||
|
224da7f494 | ||
|
9674b843c2 | ||
|
7448618ac8 | ||
|
52626f10b1 | ||
|
7c25388623 |
@ -98,6 +98,13 @@ commands:
|
|||||||
command: |
|
command: |
|
||||||
sudo apt-get update -y && sudo apt-get install -y libbenchmark-dev
|
sudo apt-get update -y && sudo apt-get install -y libbenchmark-dev
|
||||||
|
|
||||||
|
install-librados:
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Install librados
|
||||||
|
command: |
|
||||||
|
sudo apt-get update -y && sudo apt-get install -y librados-dev
|
||||||
|
|
||||||
upgrade-cmake:
|
upgrade-cmake:
|
||||||
steps:
|
steps:
|
||||||
- run:
|
- run:
|
||||||
@ -171,14 +178,15 @@ jobs:
|
|||||||
- run: make V=1 J=32 -j32 check | .circleci/cat_ignore_eagain
|
- run: make V=1 J=32 -j32 check | .circleci/cat_ignore_eagain
|
||||||
- post-steps
|
- post-steps
|
||||||
|
|
||||||
build-linux-mem-env:
|
build-linux-mem-env-librados:
|
||||||
machine:
|
machine:
|
||||||
image: ubuntu-1604:202104-01
|
image: ubuntu-1604:202104-01
|
||||||
resource_class: 2xlarge
|
resource_class: 2xlarge
|
||||||
steps:
|
steps:
|
||||||
- pre-steps
|
- pre-steps
|
||||||
- install-gflags
|
- install-gflags
|
||||||
- run: MEM_ENV=1 make V=1 J=32 -j32 check | .circleci/cat_ignore_eagain
|
- install-librados
|
||||||
|
- run: MEM_ENV=1 ROCKSDB_USE_LIBRADOS=1 make V=1 J=32 -j32 check | .circleci/cat_ignore_eagain
|
||||||
- post-steps
|
- post-steps
|
||||||
|
|
||||||
build-linux-encrypted-env:
|
build-linux-encrypted-env:
|
||||||
@ -708,9 +716,9 @@ workflows:
|
|||||||
jobs:
|
jobs:
|
||||||
- build-linux-cmake
|
- build-linux-cmake
|
||||||
- build-linux-cmake-ubuntu-20
|
- build-linux-cmake-ubuntu-20
|
||||||
build-linux-mem-env:
|
build-linux-mem-env-librados:
|
||||||
jobs:
|
jobs:
|
||||||
- build-linux-mem-env
|
- build-linux-mem-env-librados
|
||||||
build-linux-encrypted-env:
|
build-linux-encrypted-env:
|
||||||
jobs:
|
jobs:
|
||||||
- build-linux-encrypted-env
|
- build-linux-encrypted-env
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
# Rocksdb Change Log
|
# Rocksdb Change Lo
|
||||||
|
## 6.26.1 (2021-11-18)
|
||||||
|
### Bug Fixes
|
||||||
|
* Fix builds for some platforms.
|
||||||
|
|
||||||
## 6.26.0 (2021-10-20)
|
## 6.26.0 (2021-10-20)
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
* Fixes a bug in directed IO mode when calling MultiGet() for blobs in the same blob file. The bug is caused by not sorting the blob read requests by file offsets.
|
* Fixes a bug in directed IO mode when calling MultiGet() for blobs in the same blob file. The bug is caused by not sorting the blob read requests by file offsets.
|
||||||
|
1
Makefile
1
Makefile
@ -222,6 +222,7 @@ am__v_AR_1 =
|
|||||||
|
|
||||||
ifdef ROCKSDB_USE_LIBRADOS
|
ifdef ROCKSDB_USE_LIBRADOS
|
||||||
LIB_SOURCES += utilities/env_librados.cc
|
LIB_SOURCES += utilities/env_librados.cc
|
||||||
|
TEST_MAIN_SOURCES += utilities/env_librados_test.cc
|
||||||
LDFLAGS += -lrados
|
LDFLAGS += -lrados
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ struct FileOptions : EnvOptions {
|
|||||||
temperature(opts.temperature),
|
temperature(opts.temperature),
|
||||||
handoff_checksum_type(opts.handoff_checksum_type) {}
|
handoff_checksum_type(opts.handoff_checksum_type) {}
|
||||||
|
|
||||||
FileOptions& operator=(const FileOptions& opts) = default;
|
FileOptions& operator=(const FileOptions&) = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A structure to pass back some debugging information from the FileSystem
|
// A structure to pass back some debugging information from the FileSystem
|
||||||
|
@ -76,7 +76,8 @@ class EnvLibrados : public EnvWrapper {
|
|||||||
// Store in *result the names of the children of the specified directory.
|
// Store in *result the names of the children of the specified directory.
|
||||||
// The names are relative to "dir".
|
// The names are relative to "dir".
|
||||||
// Original contents of *results are dropped.
|
// Original contents of *results are dropped.
|
||||||
Status GetChildren(const std::string& dir, std::vector<std::string>* result);
|
Status GetChildren(const std::string& dir,
|
||||||
|
std::vector<std::string>* result) override;
|
||||||
|
|
||||||
// Delete the named file.
|
// Delete the named file.
|
||||||
Status DeleteFile(const std::string& fname) override;
|
Status DeleteFile(const std::string& fname) override;
|
||||||
@ -116,18 +117,16 @@ class EnvLibrados : public EnvWrapper {
|
|||||||
// to go away.
|
// to go away.
|
||||||
//
|
//
|
||||||
// May create the named file if it does not already exist.
|
// May create the named file if it does not already exist.
|
||||||
Status LockFile(const std::string& fname, FileLock** lock);
|
Status LockFile(const std::string& fname, FileLock** lock) override;
|
||||||
|
|
||||||
// Release the lock acquired by a previous successful call to LockFile.
|
// Release the lock acquired by a previous successful call to LockFile.
|
||||||
// REQUIRES: lock was returned by a successful LockFile() call
|
// REQUIRES: lock was returned by a successful LockFile() call
|
||||||
// REQUIRES: lock has not already been unlocked.
|
// REQUIRES: lock has not already been unlocked.
|
||||||
Status UnlockFile(FileLock* lock);
|
Status UnlockFile(FileLock* lock) override;
|
||||||
|
|
||||||
// Get full directory name for this db.
|
// Get full directory name for this db.
|
||||||
Status GetAbsolutePath(const std::string& db_path, std::string* output_path);
|
Status GetAbsolutePath(const std::string& db_path,
|
||||||
|
std::string* output_path) override;
|
||||||
// Generate unique id
|
|
||||||
std::string GenerateUniqueId();
|
|
||||||
|
|
||||||
// Get default EnvLibrados
|
// Get default EnvLibrados
|
||||||
static EnvLibrados* Default();
|
static EnvLibrados* Default();
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#define ROCKSDB_MAJOR 6
|
#define ROCKSDB_MAJOR 6
|
||||||
#define ROCKSDB_MINOR 26
|
#define ROCKSDB_MINOR 26
|
||||||
#define ROCKSDB_PATCH 0
|
#define ROCKSDB_PATCH 1
|
||||||
|
|
||||||
// Do not use these. We made the mistake of declaring macros starting with
|
// Do not use these. We made the mistake of declaring macros starting with
|
||||||
// double underscore. Now we have to live with our choice. We'll deprecate these
|
// double underscore. Now we have to live with our choice. We'll deprecate these
|
||||||
|
@ -50,7 +50,6 @@ NATIVE_JAVA_CLASSES = \
|
|||||||
org.rocksdb.OptimisticTransactionDB\
|
org.rocksdb.OptimisticTransactionDB\
|
||||||
org.rocksdb.OptimisticTransactionOptions\
|
org.rocksdb.OptimisticTransactionOptions\
|
||||||
org.rocksdb.Options\
|
org.rocksdb.Options\
|
||||||
org.rocksdb.OptionsString\
|
|
||||||
org.rocksdb.OptionsUtil\
|
org.rocksdb.OptionsUtil\
|
||||||
org.rocksdb.PersistentCache\
|
org.rocksdb.PersistentCache\
|
||||||
org.rocksdb.PlainTableConfig\
|
org.rocksdb.PlainTableConfig\
|
||||||
|
@ -341,11 +341,8 @@ public abstract class AbstractMutableOptions {
|
|||||||
return setIntArray(key, value);
|
return setIntArray(key, value);
|
||||||
|
|
||||||
case ENUM:
|
case ENUM:
|
||||||
final Optional<CompressionType> compressionType =
|
final CompressionType compressionType = CompressionType.getFromInternal(valueStr);
|
||||||
CompressionType.getFromInternal(valueStr);
|
return setEnum(key, compressionType);
|
||||||
if (compressionType.isPresent()) {
|
|
||||||
return setEnum(key, compressionType.get());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalStateException(key + " has unknown value type: " + key.getValueType());
|
throw new IllegalStateException(key + " has unknown value type: " + key.getValueType());
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
package org.rocksdb;
|
package org.rocksdb;
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enum CompressionType
|
* Enum CompressionType
|
||||||
*
|
*
|
||||||
@ -81,13 +79,15 @@ public enum CompressionType {
|
|||||||
*
|
*
|
||||||
* @return CompressionType instance (optional)
|
* @return CompressionType instance (optional)
|
||||||
*/
|
*/
|
||||||
public static Optional<CompressionType> getFromInternal(final String internalName) {
|
static CompressionType getFromInternal(final String internalName) {
|
||||||
for (final CompressionType compressionType : CompressionType.values()) {
|
for (final CompressionType compressionType : CompressionType.values()) {
|
||||||
if (compressionType.internalName_.equals(internalName)) {
|
if (compressionType.internalName_.equals(internalName)) {
|
||||||
return Optional.of(compressionType);
|
return compressionType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Optional.empty();
|
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Illegal internalName '" + internalName + " ' provided for CompressionType.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -172,7 +172,7 @@ public:
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status InvalidateCache(size_t offset, size_t length) {
|
Status InvalidateCache(size_t /*offset*/, size_t /*length*/) {
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -237,8 +237,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//enum AccessPattern { NORMAL, RANDOM, SEQUENTIAL, WILLNEED, DONTNEED };
|
//enum AccessPattern { NORMAL, RANDOM, SEQUENTIAL, WILLNEED, DONTNEED };
|
||||||
void Hint(AccessPattern pattern) {
|
void Hint(AccessPattern /*pattern*/) { /* Do nothing */
|
||||||
/* Do nothing */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -250,7 +249,7 @@ public:
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status InvalidateCache(size_t offset, size_t length) {
|
Status InvalidateCache(size_t /*offset*/, size_t /*length*/) {
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -315,6 +314,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
Sync();
|
Sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using WritableFile::Append;
|
||||||
/**
|
/**
|
||||||
* @brief append data to file
|
* @brief append data to file
|
||||||
* @details
|
* @details
|
||||||
@ -324,7 +324,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* @param data [description]
|
* @param data [description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Append(const Slice& data) {
|
Status Append(const Slice& data) override {
|
||||||
// append buffer
|
// append buffer
|
||||||
LOG_DEBUG("[IN] %i | %s\n", (int)data.size(), data.data());
|
LOG_DEBUG("[IN] %i | %s\n", (int)data.size(), data.data());
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -341,14 +341,14 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
return err_to_status(r);
|
return err_to_status(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using WritableFile::PositionedAppend;
|
||||||
/**
|
/**
|
||||||
* @brief not supported
|
* @brief not supported
|
||||||
* @details [long description]
|
* @details [long description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status PositionedAppend(
|
Status PositionedAppend(const Slice& /* data */,
|
||||||
const Slice& /* data */,
|
uint64_t /* offset */) override {
|
||||||
uint64_t /* offset */) {
|
|
||||||
return Status::NotSupported();
|
return Status::NotSupported();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,7 +359,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* @param size [description]
|
* @param size [description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Truncate(uint64_t size) {
|
Status Truncate(uint64_t size) override {
|
||||||
LOG_DEBUG("[IN]%lld|%lld|%lld\n", (long long)size, (long long)_file_size, (long long)_buffer_size);
|
LOG_DEBUG("[IN]%lld|%lld|%lld\n", (long long)size, (long long)_file_size, (long long)_buffer_size);
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
||||||
@ -391,7 +391,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* @details [long description]
|
* @details [long description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Close() {
|
Status Close() override {
|
||||||
LOG_DEBUG("%s | %lld | %lld\n", _hint.c_str(), (long long)_buffer_size, (long long)_file_size);
|
LOG_DEBUG("%s | %lld | %lld\n", _hint.c_str(), (long long)_buffer_size, (long long)_file_size);
|
||||||
return Sync();
|
return Sync();
|
||||||
}
|
}
|
||||||
@ -402,7 +402,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Flush() {
|
Status Flush() override {
|
||||||
librados::AioCompletion *write_completion = librados::Rados::aio_create_completion();
|
librados::AioCompletion *write_completion = librados::Rados::aio_create_completion();
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
||||||
@ -425,7 +425,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* @details initiate an aio write and wait for result
|
* @details initiate an aio write and wait for result
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Sync() { // sync data
|
Status Sync() override { // sync data
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
@ -441,18 +441,14 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* @details [long description]
|
* @details [long description]
|
||||||
* @return true if Sync() and Fsync() are safe to call concurrently with Append()and Flush().
|
* @return true if Sync() and Fsync() are safe to call concurrently with Append()and Flush().
|
||||||
*/
|
*/
|
||||||
bool IsSyncThreadSafe() const {
|
bool IsSyncThreadSafe() const override { return true; }
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Indicates the upper layers if the current WritableFile implementation uses direct IO.
|
* @brief Indicates the upper layers if the current WritableFile implementation uses direct IO.
|
||||||
* @details [long description]
|
* @details [long description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
bool use_direct_io() const {
|
bool use_direct_io() const override { return false; }
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get file size
|
* @brief Get file size
|
||||||
@ -460,7 +456,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
* This API will use cached file_size.
|
* This API will use cached file_size.
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
uint64_t GetFileSize() {
|
uint64_t GetFileSize() override {
|
||||||
LOG_DEBUG("%lld|%lld\n", (long long)_buffer_size, (long long)_file_size);
|
LOG_DEBUG("%lld|%lld\n", (long long)_buffer_size, (long long)_file_size);
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
@ -478,7 +474,7 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
size_t GetUniqueId(char* id, size_t max_size) const {
|
size_t GetUniqueId(char* id, size_t max_size) const override {
|
||||||
// All fid has the same db_id prefix, so we need to ignore db_id prefix
|
// All fid has the same db_id prefix, so we need to ignore db_id prefix
|
||||||
size_t s = std::min(max_size, _fid.size());
|
size_t s = std::min(max_size, _fid.size());
|
||||||
strncpy(id, _fid.c_str() + (_fid.size() - s), s);
|
strncpy(id, _fid.c_str() + (_fid.size() - s), s);
|
||||||
@ -495,11 +491,10 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status InvalidateCache(size_t offset, size_t length) {
|
Status InvalidateCache(size_t /*offset*/, size_t /*length*/) override {
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
using WritableFile::RangeSync;
|
|
||||||
/**
|
/**
|
||||||
* @brief No RangeSync support, just call Sync()
|
* @brief No RangeSync support, just call Sync()
|
||||||
* @details [long description]
|
* @details [long description]
|
||||||
@ -509,12 +504,11 @@ class LibradosWritableFile : public WritableFile {
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status RangeSync(off_t offset, off_t nbytes) {
|
Status RangeSync(uint64_t /*offset*/, uint64_t /*nbytes*/) override {
|
||||||
return Sync();
|
return Sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
using WritableFile::Allocate;
|
|
||||||
/**
|
/**
|
||||||
* @brief noop
|
* @brief noop
|
||||||
* @details [long description]
|
* @details [long description]
|
||||||
@ -524,7 +518,7 @@ protected:
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status Allocate(off_t offset, off_t len) {
|
Status Allocate(uint64_t /*offset*/, uint64_t /*len*/) override {
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -533,16 +527,14 @@ protected:
|
|||||||
// Directory object represents collection of files and implements
|
// Directory object represents collection of files and implements
|
||||||
// filesystem operations that can be executed on directories.
|
// filesystem operations that can be executed on directories.
|
||||||
class LibradosDirectory : public Directory {
|
class LibradosDirectory : public Directory {
|
||||||
librados::IoCtx * _io_ctx;
|
|
||||||
std::string _fid;
|
std::string _fid;
|
||||||
public:
|
|
||||||
explicit LibradosDirectory(librados::IoCtx * io_ctx, std::string fid):
|
public:
|
||||||
_io_ctx(io_ctx), _fid(fid) {}
|
explicit LibradosDirectory(librados::IoCtx* /*io_ctx*/, std::string fid)
|
||||||
|
: _fid(fid) {}
|
||||||
|
|
||||||
// Fsync directory. Can be called concurrently from multiple threads.
|
// Fsync directory. Can be called concurrently from multiple threads.
|
||||||
Status Fsync() {
|
Status Fsync() { return Status::OK(); }
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Identifies a locked file.
|
// Identifies a locked file.
|
||||||
@ -552,8 +544,8 @@ class LibradosFileLock : public FileLock {
|
|||||||
const std::string _obj_name;
|
const std::string _obj_name;
|
||||||
const std::string _lock_name;
|
const std::string _lock_name;
|
||||||
const std::string _cookie;
|
const std::string _cookie;
|
||||||
int lock_state;
|
|
||||||
public:
|
public:
|
||||||
LibradosFileLock(
|
LibradosFileLock(
|
||||||
librados::IoCtx * io_ctx,
|
librados::IoCtx * io_ctx,
|
||||||
const std::string obj_name):
|
const std::string obj_name):
|
||||||
@ -870,11 +862,9 @@ librados::IoCtx* EnvLibrados::_GetIoctx(const std::string& fpath) {
|
|||||||
* @param options [description]
|
* @param options [description]
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status EnvLibrados::NewSequentialFile(
|
Status EnvLibrados::NewSequentialFile(const std::string& fname,
|
||||||
const std::string& fname,
|
std::unique_ptr<SequentialFile>* result,
|
||||||
std::unique_ptr<SequentialFile>* result,
|
const EnvOptions& /*options*/) {
|
||||||
const EnvOptions& options)
|
|
||||||
{
|
|
||||||
LOG_DEBUG("[IN]%s\n", fname.c_str());
|
LOG_DEBUG("[IN]%s\n", fname.c_str());
|
||||||
std::string dir, file, fid;
|
std::string dir, file, fid;
|
||||||
split(fname, &dir, &file);
|
split(fname, &dir, &file);
|
||||||
@ -914,10 +904,8 @@ Status EnvLibrados::NewSequentialFile(
|
|||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status EnvLibrados::NewRandomAccessFile(
|
Status EnvLibrados::NewRandomAccessFile(
|
||||||
const std::string& fname,
|
const std::string& fname, std::unique_ptr<RandomAccessFile>* result,
|
||||||
std::unique_ptr<RandomAccessFile>* result,
|
const EnvOptions& /*options*/) {
|
||||||
const EnvOptions& options)
|
|
||||||
{
|
|
||||||
LOG_DEBUG("[IN]%s\n", fname.c_str());
|
LOG_DEBUG("[IN]%s\n", fname.c_str());
|
||||||
std::string dir, file, fid;
|
std::string dir, file, fid;
|
||||||
split(fname, &dir, &file);
|
split(fname, &dir, &file);
|
||||||
@ -1374,6 +1362,8 @@ Status EnvLibrados::LinkFile(
|
|||||||
const std::string& src,
|
const std::string& src,
|
||||||
const std::string& target_in)
|
const std::string& target_in)
|
||||||
{
|
{
|
||||||
|
(void)src;
|
||||||
|
(void)target_in;
|
||||||
LOG_DEBUG("[IO]%s => %s\n", src.c_str(), target_in.c_str());
|
LOG_DEBUG("[IO]%s => %s\n", src.c_str(), target_in.c_str());
|
||||||
return Status::NotSupported();
|
return Status::NotSupported();
|
||||||
}
|
}
|
||||||
@ -1455,10 +1445,9 @@ Status EnvLibrados::UnlockFile(FileLock* lock)
|
|||||||
*
|
*
|
||||||
* @return [description]
|
* @return [description]
|
||||||
*/
|
*/
|
||||||
Status EnvLibrados::GetAbsolutePath(
|
Status EnvLibrados::GetAbsolutePath(const std::string& db_path,
|
||||||
const std::string& db_path,
|
std::string* /*output_path*/) {
|
||||||
std::string* output_path)
|
(void)db_path;
|
||||||
{
|
|
||||||
LOG_DEBUG("[IO]%s\n", db_path.c_str());
|
LOG_DEBUG("[IO]%s\n", db_path.c_str());
|
||||||
return Status::NotSupported();
|
return Status::NotSupported();
|
||||||
}
|
}
|
||||||
|
@ -1133,6 +1133,11 @@ TEST_F(EnvLibradosMutipoolTest, DBTransactionDB) {
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
::testing::InitGoogleTest(&argc, argv);
|
||||||
|
if (getenv("CIRCLECI")) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"TODO: get env_librados_test working in CI. Skipping for now.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return RUN_ALL_TESTS();
|
return RUN_ALL_TESTS();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1140,7 +1145,7 @@ int main(int argc, char** argv) {
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
fprintf(stderr, "SKIPPED as EnvMirror is not supported in ROCKSDB_LITE\n");
|
fprintf(stderr, "SKIPPED as EnvLibrados is not supported in ROCKSDB_LITE\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user