mirror of
https://github.com/facebook/rocksdb.git
synced 2026-07-07 22:55:23 +08:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 36540d4355 | |||
| fd68cc09a4 | |||
| fc05af3b43 | |||
| 814ba4bfc1 | |||
| 7575389a25 | |||
| 63e7f124b4 | |||
| f444196659 | |||
| 9ded0f791c | |||
| b64bc23b63 | |||
| 3c9956ef40 | |||
| 659fc7c7a7 |
@@ -15,30 +15,40 @@ runs:
|
||||
SNAPPY_INCLUDE: ${{ github.workspace }}/thirdparty/snappy-1.1.8;${{ github.workspace }}/thirdparty/snappy-1.1.8/build
|
||||
SNAPPY_LIB_DEBUG: ${{ github.workspace }}/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
||||
run: |-
|
||||
# NOTE: if ... Exit $LASTEXITCODE lines needed to exit and report failure
|
||||
echo ===================== Install Dependencies =====================
|
||||
choco install liberica8jdk -y
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
mkdir $Env:THIRDPARTY_HOME
|
||||
cd $Env:THIRDPARTY_HOME
|
||||
echo "Building Snappy dependency..."
|
||||
curl -Lo snappy-1.1.8.zip https://github.com/google/snappy/archive/refs/tags/1.1.8.zip
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
unzip -q snappy-1.1.8.zip
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
cd snappy-1.1.8
|
||||
mkdir build
|
||||
cd build
|
||||
& cmake -G "$Env:CMAKE_GENERATOR" ..
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
msbuild Snappy.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
echo ======================== Build RocksDB =========================
|
||||
cd ${{ github.workspace }}
|
||||
$env:Path = $env:JAVA_HOME + ";" + $env:Path
|
||||
mkdir build
|
||||
cd build
|
||||
& cmake -G "$Env:CMAKE_GENERATOR" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE="$Env:CMAKE_PORTABLE" -DSNAPPY=1 -DJNI=1 ..
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
cd ..
|
||||
echo "Building with VS version: $Env:CMAKE_GENERATOR"
|
||||
msbuild build/rocksdb.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
echo ========================= Test RocksDB =========================
|
||||
build_tools\run_ci_db_test.ps1 -SuiteRun arena_test,db_basic_test,db_test,db_test2,db_merge_operand_test,bloom_test,c_test,coding_test,crc32c_test,dynamic_bloom_test,env_basic_test,env_test,hash_test,random_test -Concurrency 16
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
echo ======================== Test RocksJava ========================
|
||||
cd build\java
|
||||
& ctest -C Debug -j 16
|
||||
if(!$?) { Exit $LASTEXITCODE }
|
||||
shell: pwsh
|
||||
|
||||
+36
@@ -1,6 +1,42 @@
|
||||
# Rocksdb Change Log
|
||||
> NOTE: Entries for next release do not go here. Follow instructions in `unreleased_history/README.txt`
|
||||
|
||||
## 9.0.1 (04/11/2024)
|
||||
### Bug Fixes
|
||||
* Fixed CMake Javadoc and source jar builds
|
||||
* Fixed Java `SstFileMetaData` to prevent throwing `java.lang.NoSuchMethodError`
|
||||
|
||||
## 9.0.0 (02/16/2024)
|
||||
### New Features
|
||||
* Provide support for FSBuffer for point lookups. Also added support for scans and compactions that don't go through prefetching.
|
||||
* *Make `SstFileWriter` create SST files without persisting user defined timestamps when the `Option.persist_user_defined_timestamps` flag is set to false.
|
||||
* Add support for user-defined timestamps in APIs `DeleteFilesInRanges` and `GetPropertiesOfTablesInRange`.
|
||||
* Mark wal\_compression feature as production-ready. Currently only compatible with ZSTD compression.
|
||||
|
||||
### Public API Changes
|
||||
* Allow setting Stderr logger via C API
|
||||
* Declare one Get and one MultiGet variant as pure virtual, and make all the other variants non-overridable. The methods required to be implemented by derived classes of DB allow returning timestamps. It is up to the implementation to check and return an error if timestamps are not supported. The non-batched MultiGet APIs are reimplemented in terms of batched MultiGet, so callers might see a performance improvement.
|
||||
* Exposed mode option to Rate Limiter via c api.
|
||||
* Removed deprecated option `access_hint_on_compaction_start`
|
||||
* Removed deprecated option `ColumnFamilyOptions::check_flush_compaction_key_order`
|
||||
* *Remove the default `WritableFile::GetFileSize` and `FSWritableFile::GetFileSize` implementation that returns 0 and make it pure virtual, so that subclasses are enforced to explicitly provide an implementation.
|
||||
* Removed deprecated option `ColumnFamilyOptions::level_compaction_dynamic_file_size`
|
||||
* *Removed tickers with typos "rocksdb.error.handler.bg.errro.count", "rocksdb.error.handler.bg.io.errro.count", "rocksdb.error.handler.bg.retryable.io.errro.count".
|
||||
* Remove the force mode for `EnableFileDeletions` API because it is unsafe with no known legitimate use.
|
||||
* Removed deprecated option `ColumnFamilyOptions::ignore_max_compaction_bytes_for_input`
|
||||
* `sst_dump --command=check` now compares the number of records in a table with `num_entries` in table property, and reports corruption if there is a mismatch. API `SstFileDumper::ReadSequential()` is updated to optionally do this verification. (#12322)
|
||||
|
||||
### Behavior Changes
|
||||
* format\_version=6 is the new default setting in BlockBasedTableOptions, for more robust data integrity checking. DBs and SST files written with this setting cannot be read by RocksDB versions before 8.6.0.
|
||||
* Compactions can be scheduled in parallel in an additional scenario: multiple files are marked for compaction within a single column family
|
||||
* For leveled compaction, RocksDB will try to do intra-L0 compaction if the total L0 size is small compared to Lbase (#12214). Users with atomic_flush=true are more likely to see the impact of this change.
|
||||
|
||||
### Bug Fixes
|
||||
* Fixed a data race in `DBImpl::RenameTempFileToOptionsFile`.
|
||||
* Fix some perf context statistics error in write steps. which include missing write_memtable_time in unordered_write. missing write_memtable_time in PipelineWrite when Writer stat is STATE_PARALLEL_MEMTABLE_WRITER. missing write_delay_time when calling DelayWrite in WriteImplWALOnly function.
|
||||
* Fixed a bug that can, under rare circumstances, cause MultiGet to return an incorrect result for a duplicate key in a MultiGet batch.
|
||||
* Fix a bug where older data of an ingested key can be returned for read when universal compaction is used
|
||||
|
||||
## 8.11.0 (01/19/2024)
|
||||
### New Features
|
||||
* Add new statistics: `rocksdb.sst.write.micros` measures time of each write to SST file; `rocksdb.file.write.{flush|compaction|db.open}.micros` measure time of each write to SST table (currently only block-based table format) and blob file for flush, compaction and db open.
|
||||
|
||||
@@ -163,24 +163,6 @@ case "$TARGET_OS" in
|
||||
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -latomic"
|
||||
fi
|
||||
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lrt -ldl"
|
||||
if test -z "$ROCKSDB_USE_IO_URING"; then
|
||||
ROCKSDB_USE_IO_URING=1
|
||||
fi
|
||||
if test "$ROCKSDB_USE_IO_URING" -ne 0; then
|
||||
# check for liburing
|
||||
$CXX $PLATFORM_CXXFLAGS -x c++ - -luring -o test.o 2>/dev/null <<EOF
|
||||
#include <liburing.h>
|
||||
int main() {
|
||||
struct io_uring ring;
|
||||
io_uring_queue_init(1, &ring, 0);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if [ "$?" = 0 ]; then
|
||||
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -luring"
|
||||
COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_IOURING_PRESENT"
|
||||
fi
|
||||
fi
|
||||
# PORT_FILES=port/linux/linux_specific.cc
|
||||
;;
|
||||
SunOS)
|
||||
@@ -614,6 +596,24 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ROCKSDB_USE_IO_URING"; then
|
||||
ROCKSDB_USE_IO_URING=1
|
||||
fi
|
||||
if [ "$ROCKSDB_USE_IO_URING" -ne 0 -a "$PLATFORM" = OS_LINUX ]; then
|
||||
# check for liburing
|
||||
$CXX $PLATFORM_CXXFLAGS -x c++ - -luring -o test.o 2>/dev/null <<EOF
|
||||
#include <liburing.h>
|
||||
int main() {
|
||||
struct io_uring ring;
|
||||
io_uring_queue_init(1, &ring, 0);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if [ "$?" = 0 ]; then
|
||||
PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -luring"
|
||||
COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_IOURING_PRESENT"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# TODO(tec): Fix -Wshorten-64-to-32 errors on FreeBSD and enable the warning.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
# The file is generated using update_dependencies.sh.
|
||||
GCC_BASE=/mnt/gvfs/third-party2/gcc/b30c2e3be652b0135fb3df27fdef5eb4ffc2dc6d/11.x/centos9-native/886b5eb
|
||||
GCC_BASE=/mnt/gvfs/third-party2/gcc/62de5a92e5f23c661c3d4b9f322e04eb14e7a5bd/11.x/centos8-native/886b5eb
|
||||
CLANG_BASE=/mnt/gvfs/third-party2/llvm-fb/1f6edd1ff15c99c861afc8f3cd69054cd974dd64/15/platform010/72a2ff8
|
||||
LIBGCC_BASE=/mnt/gvfs/third-party2/libgcc/d1129753c8361ac8e9453c0f4291337a4507ebe6/11.x/platform010/5684a5a
|
||||
GLIBC_BASE=/mnt/gvfs/third-party2/glibc/fed6e93d87571fb162734c86636119d45a398963/2.34/platform010/f259413
|
||||
@@ -17,6 +17,6 @@ TBB_BASE=/mnt/gvfs/third-party2/tbb/53953ebc4e3eda85ad6fc3e429ba146035e97b90/201
|
||||
LIBURING_BASE=/mnt/gvfs/third-party2/liburing/a98e2d137007e3ebf7f33bd6f99c2c56bdaf8488/20210212/platform010/76ebdda
|
||||
BENCHMARK_BASE=/mnt/gvfs/third-party2/benchmark/780c7a0f9cf0967961e69ad08e61cddd85d61821/trunk/platform010/76ebdda
|
||||
KERNEL_HEADERS_BASE=/mnt/gvfs/third-party2/kernel-headers/624a2f8f6c93c3c1df8aa4a6255d8202631a6c80/fb/platform010/da39a3e
|
||||
BINUTILS_BASE=/mnt/gvfs/third-party2/binutils/8dec50d6a10944a2e851f090a3872f9ba0b0b402/2.37/centos9-native/da39a3e
|
||||
BINUTILS_BASE=/mnt/gvfs/third-party2/binutils/39579e8603b48b3540f8b0633f43adf29acccb8b/2.37/centos8-native/da39a3e
|
||||
VALGRIND_BASE=/mnt/gvfs/third-party2/valgrind/cd9cc656d49ecb53797ce4d055e49fde29fd57ff/3.19.0/platform010/76ebdda
|
||||
LUA_BASE=/mnt/gvfs/third-party2/lua/363787fa5cac2a8aa20638909210443278fa138e/5.3.4/platform010/9079c97
|
||||
|
||||
@@ -75,7 +75,7 @@ touch "$OUTPUT"
|
||||
echo "Writing dependencies to $OUTPUT"
|
||||
|
||||
# Compilers locations
|
||||
GCC_BASE=`readlink -f $TP2_LATEST/gcc/11.x/centos9-native/*/`
|
||||
GCC_BASE=`readlink -f $TP2_LATEST/gcc/11.x/centos8-native/*/`
|
||||
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/15/platform010/*/`
|
||||
|
||||
log_header
|
||||
@@ -99,7 +99,7 @@ get_lib_base liburing LATEST platform010
|
||||
get_lib_base benchmark LATEST platform010
|
||||
|
||||
get_lib_base kernel-headers fb platform010
|
||||
get_lib_base binutils LATEST centos9-native
|
||||
get_lib_base binutils LATEST centos8-native
|
||||
get_lib_base valgrind LATEST platform010
|
||||
get_lib_base lua 5.3.4 platform010
|
||||
|
||||
|
||||
@@ -81,7 +81,14 @@ enum class IOType : uint8_t {
|
||||
|
||||
// enum representing various operations supported by underlying FileSystem.
|
||||
// These need to be set in SupportedOps API for RocksDB to use them.
|
||||
enum FSSupportedOps { kAsyncIO, kFSBuffer };
|
||||
enum FSSupportedOps {
|
||||
kAsyncIO, // Supports async reads
|
||||
kFSBuffer, // Supports handing off the file system allocated read buffer
|
||||
// to the caller of Read/MultiRead
|
||||
kVerifyAndReconstructRead, // Supports a higher level of data integrity. See
|
||||
// the verify_and_reconstruct_read flag in
|
||||
// IOOptions.
|
||||
};
|
||||
|
||||
// Per-request options that can be passed down to the FileSystem
|
||||
// implementation. These are hints and are not necessarily guaranteed to be
|
||||
@@ -120,6 +127,18 @@ struct IOOptions {
|
||||
// directories and list only files in GetChildren API.
|
||||
bool do_not_recurse;
|
||||
|
||||
// Setting this flag indicates a corruption was detected by a previous read,
|
||||
// so the caller wants to re-read the data with much stronger data integrity
|
||||
// checking and correction, i.e requests the file system to reconstruct the
|
||||
// data from redundant copies and verify checksums, if available, in order
|
||||
// to have a better chance of success. It is expected that this will have a
|
||||
// much higher overhead than a normal read.
|
||||
// This is a hint. At a minimum, the file system should implement this flag in
|
||||
// FSRandomAccessFile::Read and FSSequentialFile::Read
|
||||
// NOTE: The file system must support kVerifyAndReconstructRead in
|
||||
// FSSupportedOps, otherwise this feature will not be used.
|
||||
bool verify_and_reconstruct_read;
|
||||
|
||||
// EXPERIMENTAL
|
||||
Env::IOActivity io_activity = Env::IOActivity::kUnknown;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// minor or major version number planned for release.
|
||||
#define ROCKSDB_MAJOR 9
|
||||
#define ROCKSDB_MINOR 0
|
||||
#define ROCKSDB_PATCH 0
|
||||
#define ROCKSDB_PATCH 1
|
||||
|
||||
// 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
|
||||
|
||||
+20
-10
@@ -794,20 +794,30 @@ if(NOT MINGW)
|
||||
)
|
||||
endif()
|
||||
|
||||
set(ROCKSDB_JAVADOC_JAR rocksdb-${CMAKE_PROJECT_VERSION}-javadoc.jar)
|
||||
add_custom_target(rocksdbjava_javadocs_jar ALL
|
||||
COMMAND ${Java_JAVADOC_EXECUTABLE} -d ${CMAKE_CURRENT_BINARY_DIR}/javadoc -sourcepath ${PROJECT_SOURCE_DIR}/java/src/main/java/ -subpackages org
|
||||
COMMAND ${Java_JAR_EXECUTABLE} -v -c -f ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR} -C ${CMAKE_CURRENT_BINARY_DIR}/javadoc .
|
||||
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
# Javadoc Jar
|
||||
set(ROCKSDB_JAVADOC_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-javadoc.jar)
|
||||
create_javadoc(rocksdb
|
||||
PACKAGES org.rocksdb org.rocksdb.util
|
||||
SOURCEPATH "${PROJECT_SOURCE_DIR}/java/src/main/java"
|
||||
WINDOWTITLE "RocksDB Java API JavaDoc"
|
||||
AUTHOR FALSE
|
||||
USE FALSE
|
||||
VERSION TRUE
|
||||
)
|
||||
add_custom_target(rocksdb_javadocs_jar ALL
|
||||
COMMAND ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR} -C ${CMAKE_CURRENT_BINARY_DIR}/javadoc/rocksdb .
|
||||
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS rocksdb_javadoc
|
||||
)
|
||||
|
||||
set(ROCKSDB_SOURCES_JAR rocksdb-${CMAKE_PROJECT_VERSION}-sources.jar)
|
||||
add_custom_target(rocksdbjava_sources_jar
|
||||
${Java_JAR_EXECUTABLE} -v -c -f ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} -C ${PROJECT_SOURCE_DIR}/java/src/main/java/ .
|
||||
# Sources Jar
|
||||
set(ROCKSDB_SOURCES_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-sources.jar)
|
||||
add_custom_target(rocksdb_sources_jar ALL
|
||||
${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} -C ${PROJECT_SOURCE_DIR}/java/src/main/java/ .
|
||||
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
)
|
||||
|
||||
set(bitness 32)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
|
||||
+16
-2
@@ -7678,7 +7678,8 @@ class SstFileMetaDataJni : public JavaClass {
|
||||
}
|
||||
|
||||
jmethodID mid = env->GetMethodID(
|
||||
jclazz, "<init>", "(Ljava/lang/String;Ljava/lang/String;JJJ[B[BJZJJ)V");
|
||||
jclazz, "<init>",
|
||||
"(Ljava/lang/String;Ljava/lang/String;JJJ[B[BJZJJ[B)V");
|
||||
if (mid == nullptr) {
|
||||
// exception thrown: NoSuchMethodException or OutOfMemoryError
|
||||
return nullptr;
|
||||
@@ -7718,6 +7719,17 @@ class SstFileMetaDataJni : public JavaClass {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
jbyteArray jfile_checksum = ROCKSDB_NAMESPACE::JniUtil::copyBytes(
|
||||
env, sst_file_meta_data->file_checksum);
|
||||
if (env->ExceptionCheck()) {
|
||||
// exception occurred creating java string
|
||||
env->DeleteLocalRef(jfile_name);
|
||||
env->DeleteLocalRef(jpath);
|
||||
env->DeleteLocalRef(jsmallest_key);
|
||||
env->DeleteLocalRef(jlargest_key);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
jobject jsst_file_meta_data = env->NewObject(
|
||||
jclazz, mid, jfile_name, jpath,
|
||||
static_cast<jlong>(sst_file_meta_data->size),
|
||||
@@ -7726,13 +7738,14 @@ class SstFileMetaDataJni : public JavaClass {
|
||||
jlargest_key, static_cast<jlong>(sst_file_meta_data->num_reads_sampled),
|
||||
static_cast<jboolean>(sst_file_meta_data->being_compacted),
|
||||
static_cast<jlong>(sst_file_meta_data->num_entries),
|
||||
static_cast<jlong>(sst_file_meta_data->num_deletions));
|
||||
static_cast<jlong>(sst_file_meta_data->num_deletions), jfile_checksum);
|
||||
|
||||
if (env->ExceptionCheck()) {
|
||||
env->DeleteLocalRef(jfile_name);
|
||||
env->DeleteLocalRef(jpath);
|
||||
env->DeleteLocalRef(jsmallest_key);
|
||||
env->DeleteLocalRef(jlargest_key);
|
||||
env->DeleteLocalRef(jfile_checksum);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -7741,6 +7754,7 @@ class SstFileMetaDataJni : public JavaClass {
|
||||
env->DeleteLocalRef(jpath);
|
||||
env->DeleteLocalRef(jsmallest_key);
|
||||
env->DeleteLocalRef(jlargest_key);
|
||||
env->DeleteLocalRef(jfile_checksum);
|
||||
|
||||
return jsst_file_meta_data;
|
||||
}
|
||||
|
||||
@@ -1407,6 +1407,33 @@ public class RocksDBTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getColumnFamilyMetadataWithChecksum() throws RocksDBException {
|
||||
final Properties props = new Properties();
|
||||
props.put("file_checksum_gen_factory", "FileChecksumGenCrc32cFactory");
|
||||
final String dbPath = dbFolder.getRoot().getAbsolutePath();
|
||||
|
||||
try (final DBOptions dbOptions = DBOptions.getDBOptionsFromProps(props);
|
||||
final ColumnFamilyOptions cfOptions = new ColumnFamilyOptions();
|
||||
final Options options = new Options(dbOptions, cfOptions).setCreateIfMissing(true)) {
|
||||
try (final RocksDB db = RocksDB.open(options, dbPath);
|
||||
final WriteOptions writeOptions = new WriteOptions().setDisableWAL(true)) {
|
||||
db.put("key".getBytes(UTF_8), "value".getBytes(UTF_8));
|
||||
}
|
||||
|
||||
try (final RocksDB db = RocksDB.open(options, dbFolder.getRoot().getAbsolutePath())) {
|
||||
ColumnFamilyMetaData metadata = db.getColumnFamilyMetaData(); // Exception here
|
||||
List<LevelMetaData> levels = metadata.levels();
|
||||
assertThat(levels).isNotEmpty();
|
||||
List<SstFileMetaData> filesMetadata = levels.get(0).files();
|
||||
assertThat(filesMetadata).isNotEmpty();
|
||||
assertThat(filesMetadata.get(0).fileChecksum()).isNotNull();
|
||||
assertThat(filesMetadata.get(0).fileChecksum()).hasSize(4);
|
||||
assertThat(filesMetadata.get(0).fileChecksum()).isNotEqualTo(new byte[] {0, 0, 0, 0});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore("TODO(AR) re-enable when ready!")
|
||||
@Test
|
||||
public void compactFiles() throws RocksDBException {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
format\_version=6 is the new default setting in BlockBasedTableOptions, for more robust data integrity checking. DBs and SST files written with this setting cannot be read by RocksDB versions before 8.6.0.
|
||||
@@ -1 +0,0 @@
|
||||
Compactions can be scheduled in parallel in an additional scenario: multiple files are marked for compaction within a single column family
|
||||
@@ -1 +0,0 @@
|
||||
* For leveled compaction, RocksDB will try to do intra-L0 compaction if the total L0 size is small compared to Lbase (#12214). Users with atomic_flush=true are more likely to see the impact of this change.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed a data race in `DBImpl::RenameTempFileToOptionsFile`.
|
||||
@@ -1 +0,0 @@
|
||||
Fix some perf context statistics error in write steps. which include missing write_memtable_time in unordered_write. missing write_memtable_time in PipelineWrite when Writer stat is STATE_PARALLEL_MEMTABLE_WRITER. missing write_delay_time when calling DelayWrite in WriteImplWALOnly function.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed a bug that can, under rare circumstances, cause MultiGet to return an incorrect result for a duplicate key in a MultiGet batch.
|
||||
@@ -1 +0,0 @@
|
||||
Fix a bug where older data of an ingested key can be returned for read when universal compaction is used
|
||||
@@ -1 +0,0 @@
|
||||
Provide support for FSBuffer for point lookups. Also added support for scans and compactions that don't go through prefetching.
|
||||
@@ -1 +0,0 @@
|
||||
*Make `SstFileWriter` create SST files without persisting user defined timestamps when the `Option.persist_user_defined_timestamps` flag is set to false.
|
||||
@@ -1 +0,0 @@
|
||||
Add support for user-defined timestamps in APIs `DeleteFilesInRanges` and `GetPropertiesOfTablesInRange`.
|
||||
@@ -1 +0,0 @@
|
||||
Mark wal\_compression feature as production-ready. Currently only compatible with ZSTD compression.
|
||||
@@ -1 +0,0 @@
|
||||
Allow setting Stderr logger via C API
|
||||
@@ -1 +0,0 @@
|
||||
Declare one Get and one MultiGet variant as pure virtual, and make all the other variants non-overridable. The methods required to be implemented by derived classes of DB allow returning timestamps. It is up to the implementation to check and return an error if timestamps are not supported. The non-batched MultiGet APIs are reimplemented in terms of batched MultiGet, so callers might see a performance improvement.
|
||||
@@ -1 +0,0 @@
|
||||
Exposed mode option to Rate Limiter via c api.
|
||||
@@ -1 +0,0 @@
|
||||
Removed deprecated option `access_hint_on_compaction_start`
|
||||
@@ -1 +0,0 @@
|
||||
Removed deprecated option `ColumnFamilyOptions::check_flush_compaction_key_order`
|
||||
@@ -1 +0,0 @@
|
||||
*Remove the default `WritableFile::GetFileSize` and `FSWritableFile::GetFileSize` implementation that returns 0 and make it pure virtual, so that subclasses are enforced to explicitly provide an implementation.
|
||||
@@ -1 +0,0 @@
|
||||
Removed deprecated option `ColumnFamilyOptions::level_compaction_dynamic_file_size`
|
||||
@@ -1 +0,0 @@
|
||||
*Removed tickers with typos "rocksdb.error.handler.bg.errro.count", "rocksdb.error.handler.bg.io.errro.count", "rocksdb.error.handler.bg.retryable.io.errro.count".
|
||||
@@ -1 +0,0 @@
|
||||
Remove the force mode for `EnableFileDeletions` API because it is unsafe with no known legitimate use.
|
||||
@@ -1 +0,0 @@
|
||||
Removed deprecated option `ColumnFamilyOptions::ignore_max_compaction_bytes_for_input`
|
||||
@@ -1 +0,0 @@
|
||||
* `sst_dump --command=check` now compares the number of records in a table with `num_entries` in table property, and reports corruption if there is a mismatch. API `SstFileDumper::ReadSequential()` is updated to optionally do this verification. (#12322)
|
||||
Reference in New Issue
Block a user