rocksdb/util
Siying Dong 95b0e89b5d Improve write buffer manager (and allow the size to be tracked in block cache)
Summary:
Improve write buffer manager in several ways:
1. Size is tracked when arena block is allocated, rather than every allocation, so that it can better track actual memory usage and the tracking overhead is slightly lower.
2. We start to trigger memtable flush when 7/8 of the memory cap hits, instead of 100%, and make 100% much harder to hit.
3. Allow a cache object to be passed into buffer manager and the size allocated by memtable can be costed there. This can help users have one single memory cap across block cache and memtable.
Closes https://github.com/facebook/rocksdb/pull/2350

Differential Revision: D5110648

Pulled By: siying

fbshipit-source-id: b4238113094bf22574001e446b5d88523ba00017
2017-06-02 14:26:56 -07:00
..
aligned_buffer.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
allocator.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena_test.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
auto_roll_logger_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
auto_roll_logger.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
auto_roll_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
autovector_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
autovector.h Address MS Visual Studio 2017 issue with autovector 2017-05-22 10:57:06 -07:00
bloom_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
bloom.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
build_version.cc.in Makefile: generate util/build_version.cc from .in file (#1384) 2016-10-25 11:31:39 -07:00
build_version.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
channel.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
coding_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
coding.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
coding.h Avoid unsupported attributes when not building with UBSAN 2017-05-30 11:13:01 -07:00
compaction_job_stats_impl.cc Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
comparator.cc do not read next datablock if upperbound is reached 2017-05-05 23:20:01 -07:00
compression.h Remove use of deprecated LZ4 function 2016-11-21 12:24:14 -08:00
concurrent_arena.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
concurrent_arena.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
core_local.h Core-local statistics 2017-05-23 10:42:59 -07:00
crc32c_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
crc32c.cc cross-platform compatibility improvements 2017-05-15 16:15:38 -07:00
crc32c.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
delete_scheduler_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
delete_scheduler.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
delete_scheduler.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
dynamic_bloom_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
dynamic_bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
dynamic_bloom.h Fix the wrong address for PREFETCH in DynamicBloom::Prefetch 2017-02-28 10:39:11 -08:00
event_logger_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
event_logger.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
event_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
fault_injection_test_env.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
fault_injection_test_env.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
file_reader_writer_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
file_reader_writer.cc fix unity test 2017-05-17 18:56:55 -07:00
file_reader_writer.h Blob storage pr 2017-05-10 15:14:44 -07:00
file_util.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
file_util.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filelock_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filename.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filename.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filter_policy.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
hash_map.h Use more efficient hash map for deadlock detection 2016-11-19 11:39:15 -08:00
hash.cc Avoid unsupported attributes when not building with UBSAN 2017-05-30 11:13:01 -07:00
hash.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
heap_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
heap.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
kv_map.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
log_buffer.cc travis: add Windows cross-compilation 2017-05-05 23:20:01 -07:00
log_buffer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_write_bench.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
logging.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
memory_usage.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
mpsc.h Blob storage pr 2017-05-10 15:14:44 -07:00
murmurhash.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
murmurhash.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
mutexlock.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
random.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
random.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
rate_limiter_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
rate_limiter.cc options.delayed_write_rate use the rate of rate_limiter by default. 2017-05-24 09:58:24 -07:00
rate_limiter.h options.delayed_write_rate use the rate of rate_limiter by default. 2017-05-24 09:58:24 -07:00
slice_transform_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
slice.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sst_file_manager_impl.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sst_file_manager_impl.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
status_message.cc Limit maximum memory used in the WriteBatch representation 2017-04-10 15:42:26 -07:00
status.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
stderr_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
stop_watch.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
string_util.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
string_util.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sync_point.cc disable direct reads for log and manifest and add direct io to tests 2017-05-22 18:41:28 -07:00
sync_point.h disable direct reads for log and manifest and add direct io to tests 2017-05-22 18:41:28 -07:00
testharness.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
testharness.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
testutil.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
testutil.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_list_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_local_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_local.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_local.h cross-platform compatibility improvements 2017-05-15 16:15:38 -07:00
thread_operation.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
threadpool_imp.cc New API for background work in single thread pool 2017-05-23 11:12:27 -07:00
threadpool_imp.h New API for background work in single thread pool 2017-05-23 11:12:27 -07:00
timer_queue_test.cc Blob storage pr 2017-05-10 15:14:44 -07:00
timer_queue.h Blob storage pr 2017-05-10 15:14:44 -07:00
transaction_test_util.cc Gcc-7 buffer size insufficient 2016-12-14 19:24:26 -08:00
transaction_test_util.h Fix AppVeyor build error 2016-03-15 10:57:33 -07:00
xxhash.cc Enable MS Warning C4804 : unsafe use of type 'bool' in operation 2015-11-18 16:23:19 -08:00
xxhash.h Prevent xxhash symbols from polluting global namespace 2015-03-12 12:07:10 -07:00