From 7a9a1642767a036a82fb5a0584f82ff8f7b4755d Mon Sep 17 00:00:00 2001 From: Andrew Kryczka <andrewkr@fb.com> Date: Thu, 9 Aug 2018 10:17:56 -0700 Subject: [PATCH] Fix db_bench default compression level (#4248) Summary: db_bench's previous default compression level (-1) was not the default compression level in all libraries. In particular, in ZSTD negative values are valid compression levels, while ZSTD's default compression level is three. This PR changes db_bench's default to be RocksDB's library-independent default compression level (see #3895). I also changed a couple other flags to get their default values from an options object directly rather than hardcoding. Pull Request resolved: https://github.com/facebook/rocksdb/pull/4248 Differential Revision: D9235140 Pulled By: ajkr fbshipit-source-id: be4e0722d59fa1968832183db36d1d20fcf11e5b --- tools/db_bench_tool.cc | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/tools/db_bench_tool.cc b/tools/db_bench_tool.cc index f7911124a..79a84766a 100644 --- a/tools/db_bench_tool.cc +++ b/tools/db_bench_tool.cc @@ -769,30 +769,21 @@ DEFINE_string(compression_type, "snappy", static enum rocksdb::CompressionType FLAGS_compression_type_e = rocksdb::kSnappyCompression; -DEFINE_int32(compression_level, -1, - "Compression level. For zlib this should be -1 for the " - "default level, or between 0 and 9."); +DEFINE_int32(compression_level, rocksdb::CompressionOptions().level, + "Compression level. The meaning of this value is library-" + "dependent. If unset, we try to use the default for the library " + "specified in `--compression_type`"); -DEFINE_int32(compression_max_dict_bytes, 0, +DEFINE_int32(compression_max_dict_bytes, + rocksdb::CompressionOptions().max_dict_bytes, "Maximum size of dictionary used to prime the compression " "library."); -DEFINE_int32(compression_zstd_max_train_bytes, 0, +DEFINE_int32(compression_zstd_max_train_bytes, + rocksdb::CompressionOptions().zstd_max_train_bytes, "Maximum size of training data passed to zstd's dictionary " "trainer."); -static bool ValidateCompressionLevel(const char* flagname, int32_t value) { - if (value < -1 || value > 9) { - fprintf(stderr, "Invalid value for --%s: %d, must be between -1 and 9\n", - flagname, value); - return false; - } - return true; -} - -static const bool FLAGS_compression_level_dummy __attribute__((__unused__)) = - RegisterFlagValidator(&FLAGS_compression_level, &ValidateCompressionLevel); - DEFINE_int32(min_level_to_compress, -1, "If non-negative, compression starts" " from this level. Levels with number < min_level_to_compress are" " not compressed. Otherwise, apply compression_type to "