rocksdb/include/rocksdb
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
..
utilities Comment out unused variables 2018-03-05 13:13:41 -08:00
advanced_options.h pass key/value samples through zstd compression dictionary generator 2017-11-02 22:56:36 -07:00
c.h add support for allow_ingest_behind in C API 2018-01-08 17:26:31 -08:00
cache.h Comment out unused variables 2018-03-05 13:13:41 -08:00
cleanable.h PinnableSlice move assignment 2017-10-12 18:28:24 -07:00
compaction_filter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
compaction_job_stats.h Change RocksDB License 2017-07-15 16:11:23 -07:00
comparator.h Move ~Comparator define to comparator.h 2017-10-17 09:58:13 -07:00
convenience.h Delete files in multiple ranges at once 2018-01-30 13:56:39 -08:00
db_bench_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_dump_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db.h Comment out unused variables 2018-03-05 13:13:41 -08:00
env_encryption.h Change RocksDB License 2017-07-15 16:11:23 -07:00
env.h Comment out unused variables 2018-03-05 13:13:41 -08:00
experimental.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filter_policy.h Comment out unused variables 2018-03-05 13:13:41 -08:00
flush_block_policy.h Change RocksDB License 2017-07-15 16:11:23 -07:00
iostats_context.h Change RocksDB License 2017-07-15 16:11:23 -07:00
iterator.h Add rocksdb.iterator.internal-key property 2018-02-20 19:12:09 -08:00
ldb_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
listener.h Comment out unused variables 2018-03-05 13:13:41 -08:00
memtablerep.h Comment out unused variables 2018-03-05 13:13:41 -08:00
merge_operator.h Comment out unused variables 2018-03-05 13:13:41 -08:00
metadata.h Fix coverity issues in include/rocksdb 2017-11-02 17:56:48 -07:00
options.h Add delay before flush in CompactRange to avoid write stalling 2018-02-12 15:42:47 -08:00
perf_context.h Add lock wait time as a perf context counter 2017-11-06 10:57:19 -08:00
perf_level.h Change RocksDB License 2017-07-15 16:11:23 -07:00
persistent_cache.h Change RocksDB License 2017-07-15 16:11:23 -07:00
rate_limiter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
slice_transform.h Comment out unused variables 2018-03-05 13:13:41 -08:00
slice.h Comment out unused variables 2018-03-05 13:13:41 -08:00
snapshot.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_dump_tool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_manager.h Make trash-to-DB size ratio limit configurable 2017-11-17 11:58:17 -08:00
sst_file_writer.h Support skipping bloom filters for SstFileWriter 2018-01-22 14:42:18 -08:00
statistics.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
status.h Change RocksDB License 2017-07-15 16:11:23 -07:00
table_properties.h Added support for differential snapshots 2017-11-01 18:56:43 -07:00
table.h Comment out unused variables 2018-03-05 13:13:41 -08:00
thread_status.h fix ThreadStatus for bottom-pri compaction threads 2017-12-14 14:57:49 -08:00
threadpool.h Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_log.h Change RocksDB License 2017-07-15 16:11:23 -07:00
types.h Fix WriteBatch rep_ format for RangeDeletion records 2018-01-23 12:57:32 -08:00
universal_compaction.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version.h Switch version to 5.10 2017-12-11 15:42:01 -08:00
wal_filter.h Comment out unused variables 2018-03-05 13:13:41 -08:00
write_batch_base.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch.h Comment out unused variables 2018-03-05 13:13:41 -08:00
write_buffer_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00