Run Merge with Integrated BlobDB in stress, crash and db_bench (#8461)

Summary:
Run Merge with Intergrated BlobDB in stress tests, crash tests and db_bench.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/8461

Test Plan:
1. python3 -u tools/db_crashtest.py --simple whitebox
---use_merge=1 --enable_blob_files=1
           2.  ./db_bench --benchmarks="readwhilemerging"
--merge_operator=uint64add --enable_blob_files=true

Reviewed By: ltamasi

Differential Revision: D29394824

Pulled By: akankshamahajan15

fbshipit-source-id: 0a8e492b13129673e088fb8af3402ab678bb473a
main
Akanksha Mahajan 4 years ago committed by Facebook GitHub Bot
parent a904c62d28
commit be8199cdb9
  1. 1
      HISTORY.md
  2. 6
      db_stress_tool/db_stress_test_base.cc
  3. 7
      tools/db_bench_tool.cc
  4. 2
      tools/db_crashtest.py

@ -10,6 +10,7 @@
### New Features ### New Features
* ldb has a new feature, `list_live_files_metadata`, that shows the live SST files, as well as their LSM storage level and the column family they belong to. * ldb has a new feature, `list_live_files_metadata`, that shows the live SST files, as well as their LSM storage level and the column family they belong to.
* The new BlobDB implementation now tracks the amount of garbage in each blob file in the MANIFEST. * The new BlobDB implementation now tracks the amount of garbage in each blob file in the MANIFEST.
* Integrated BlobDB now supports Merge with base values (Put/Delete etc.).
## 6.22.0 (2021-06-18) ## 6.22.0 (2021-06-18)
### Behavior Changes ### Behavior Changes

@ -2357,10 +2357,10 @@ void StressTest::Open() {
if ((options_.enable_blob_files || options_.enable_blob_garbage_collection || if ((options_.enable_blob_files || options_.enable_blob_garbage_collection ||
FLAGS_allow_setting_blob_options_dynamically) && FLAGS_allow_setting_blob_options_dynamically) &&
(FLAGS_use_merge || FLAGS_best_efforts_recovery)) { FLAGS_best_efforts_recovery) {
fprintf(stderr, fprintf(stderr,
"Integrated BlobDB is currently incompatible with Merge, " "Integrated BlobDB is currently incompatible with best-effort "
"and best-effort recovery\n"); "recovery\n");
exit(1); exit(1);
} }

@ -7840,13 +7840,6 @@ int db_bench_tool(int argc, char** argv) {
exit(1); exit(1);
} }
if ((FLAGS_enable_blob_files || FLAGS_enable_blob_garbage_collection) &&
!FLAGS_merge_operator.empty()) {
fprintf(stderr,
"Integrated BlobDB is currently incompatible with Merge.\n");
exit(1);
}
ROCKSDB_NAMESPACE::Benchmark benchmark; ROCKSDB_NAMESPACE::Benchmark benchmark;
benchmark.Run(); benchmark.Run();

@ -280,8 +280,6 @@ blob_params = {
"blob_compression_type": lambda: random.choice(["none", "snappy", "lz4", "zstd"]), "blob_compression_type": lambda: random.choice(["none", "snappy", "lz4", "zstd"]),
"enable_blob_garbage_collection": lambda: random.choice([0] + [1] * 3), "enable_blob_garbage_collection": lambda: random.choice([0] + [1] * 3),
"blob_garbage_collection_age_cutoff": lambda: random.choice([0.0, 0.25, 0.5, 0.75, 1.0]), "blob_garbage_collection_age_cutoff": lambda: random.choice([0.0, 0.25, 0.5, 0.75, 1.0]),
# The following are currently incompatible with the integrated BlobDB
"use_merge": 0,
} }
ts_params = { ts_params = {

Loading…
Cancel
Save