rocksdb/tools
Yi Wu b864bc9b5b Blob DB: Improve FIFO eviction
Summary:
Improving blob db FIFO eviction with the following changes,
* Change blob_dir_size to max_db_size. Take into account SST file size when computing DB size.
* FIFO now only take into account live sst files and live blob files. It is normal for disk usage to go over max_db_size because there are obsolete sst files and blob files pending deletion.
* FIFO eviction now also evict TTL blob files that's still open. It doesn't evict non-TTL blob files.
* If FIFO is triggered, it will pass an expiration and the current sequence number to compaction filter. Compaction filter will then filter inlined keys to evict those with an earlier expiration and smaller sequence number. So call LSM FIFO.
* Compaction filter also filter those blob indexes where corresponding blob file is gone.
* Add an event listener to listen compaction/flush event and update sst file size.
* Implement DB::Close() to make sure base db, as well as event listener and compaction filter, destruct before blob db.
* More blob db statistics around FIFO.
* Fix some locking issue when accessing a blob file.
Closes https://github.com/facebook/rocksdb/pull/3556

Differential Revision: D7139328

Pulled By: yiwu-arbug

fbshipit-source-id: ea5edb07b33dfceacb2682f4789bea61de28bbfa
2018-03-06 11:57:42 -08:00
..
dump fix gflags namespace 2017-12-01 10:42:05 -08:00
rdb Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
auto_sanity_test.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
benchmark_leveldb.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
benchmark.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
blob_dump.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
check_format_compatible.sh Add 5.10.fb to tools/check_format_compatible.sh 2018-01-19 12:42:07 -08:00
CMakeLists.txt cmake support for linux and osx (#1358) 2016-09-28 11:53:15 -07:00
db_bench_tool_test.cc fix gflags namespace 2017-12-01 10:42:05 -08:00
db_bench_tool.cc Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
db_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_crashtest.py Suppress lint in old files 2018-01-29 12:56:42 -08:00
db_repl_stress.cc fix gflags namespace 2017-12-01 10:42:05 -08:00
db_sanity_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_stress.cc Fix a leak in prepared_section_completed_ 2018-03-01 20:41:56 -08:00
dbench_monitor Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
Dockerfile adding docker build script and dockerfile 2015-05-22 16:03:39 -07:00
generate_random_db.sh Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
ldb_cmd_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
ldb_cmd_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
ldb_cmd.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
ldb_test.py Suppress lint in old files 2018-01-29 12:56:42 -08:00
ldb_tool.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
ldb.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
pflag Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
reduce_levels_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
regression_test.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
report_lite_binary_size.sh Legocastle job to report lite build binary size to scuba 2018-02-15 17:27:24 -08:00
rocksdb_dump_test.sh Suppress lint in old files 2018-01-29 12:56:42 -08:00
run_flash_bench.sh Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
run_leveldb.sh Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
sample-dump.dmp First version of rocksdb_dump and rocksdb_undump. 2015-06-19 16:24:36 -07:00
sst_dump_test.cc make sst_dump compression size command consistent 2017-08-11 16:03:44 -07:00
sst_dump_tool_imp.h make sst_dump compression size command consistent 2017-08-11 16:03:44 -07:00
sst_dump_tool.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
sst_dump.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
verify_random_db.sh Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
write_stress_runner.py Suppress lint in old files 2018-01-29 12:56:42 -08:00
write_stress.cc Compilation fixes for powerpc build, -Wparentheses-equality error and missing header guards 2018-02-09 14:12:43 -08:00