One of the major benefits of rocksdb over leveldb is multithreaded
compaction. The default of 1 thread does not provide much benefit, and
is insufficient for heavy rgw workloads.
For high-write and delete omap workloads I've seen up to 8 compaction
threads be used. There's little overhead to having a higher max than
are needed, so set the default to 8.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit
023fa810aa6b3af305e9027e3f717e54d1bb2712)
Conflicts:
src/common/options.cc (moved to config_opts.h)
OPTION(rocksdb_collect_memory_stats, OPT_BOOL, false) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled.
// rocksdb options that will be used for omap(if omap_backend is rocksdb)
-OPTION(filestore_rocksdb_options, OPT_STR, "compaction_readahead_size=2097152")
+OPTION(filestore_rocksdb_options, OPT_STR, "max_background_compactions=8;compaction_readahead_size=2097152")
// rocksdb options that will be used in monstore
OPTION(mon_rocksdb_options, OPT_STR, "write_buffer_size=33554432,compression=kNoCompression")