mirror of
https://github.com/facebook/rocksdb.git
synced 2026-11-07 11:32:34 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36540d4355 | ||
|
|
fd68cc09a4 | ||
|
|
fc05af3b43 | ||
|
|
814ba4bfc1 | ||
|
|
7575389a25 | ||
|
|
63e7f124b4 |
No files matched your search
@@ -1,6 +1,11 @@
|
||||
# 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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+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 {
|
||||
|
||||
Reference in new issue
Block a user