rocksdb/util
Siying Dong 666a005f9b Support prefetch last 512KB with direct I/O in block based file reader
Summary:
Right now, if direct I/O is enabled, prefetching the last 512KB cannot be applied, except compaction inputs or readahead is enabled for iterators. This can create a lot of I/O for HDD cases. To solve the problem, the 512KB is prefetched in block based table if direct I/O is enabled. The prefetched buffer is passed in totegher with random access file reader, so that we try to read from the buffer before reading from the file. This can be extended in the future to support flexible user iterator readahead too.
Closes https://github.com/facebook/rocksdb/pull/2708

Differential Revision: D5593091

Pulled By: siying

fbshipit-source-id: ee36ff6d8af11c312a2622272b21957a7b5c81e7
2017-08-11 12:16:45 -07:00
..
aligned_buffer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
allocator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
arena.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
arena.h Prevent empty memtables from using a lot of memory 2017-07-28 15:58:43 -07:00
arena_test.cc Prevent empty memtables from using a lot of memory 2017-07-28 15:58:43 -07:00
auto_roll_logger.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
auto_roll_logger.h Change RocksDB License 2017-07-15 16:11:23 -07:00
auto_roll_logger_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
autovector.h Change RocksDB License 2017-07-15 16:11:23 -07:00
autovector_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
bloom.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
bloom_test.cc Change RocksDB License 2017-07-15 16:11:23 -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 Change RocksDB License 2017-07-15 16:11:23 -07:00
cast_util.h Add a missing "once" in .h 2017-07-31 12:12:03 -07:00
channel.h Change RocksDB License 2017-07-15 16:11:23 -07:00
coding.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
coding.h Change RocksDB License 2017-07-15 16:11:23 -07:00
coding_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
compaction_job_stats_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
comparator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
compression.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
concurrent_arena.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
concurrent_arena.h Prevent empty memtables from using a lot of memory 2017-07-28 15:58:43 -07:00
core_local.h Change RocksDB License 2017-07-15 16:11:23 -07:00
crc32c.cc Revert "CRC32 Power Optimization Changes" 2017-07-26 19:31:36 -07:00
crc32c.h Change RocksDB License 2017-07-15 16:11:23 -07:00
crc32c_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
delete_scheduler.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
delete_scheduler.h Change RocksDB License 2017-07-15 16:11:23 -07:00
delete_scheduler_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
dynamic_bloom.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
dynamic_bloom.h Change RocksDB License 2017-07-15 16:11:23 -07:00
dynamic_bloom_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
event_logger.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
event_logger.h Change RocksDB License 2017-07-15 16:11:23 -07:00
event_logger_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
fault_injection_test_env.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
fault_injection_test_env.h Change RocksDB License 2017-07-15 16:11:23 -07:00
file_reader_writer.cc Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
file_reader_writer.h Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
file_reader_writer_test.cc Fix LITE unit tests 2017-07-26 21:11:47 -07:00
file_util.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
file_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filelock_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
filename.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
filename.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filter_policy.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
hash.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
hash.h Change RocksDB License 2017-07-15 16:11:23 -07:00
hash_map.h Change RocksDB License 2017-07-15 16:11:23 -07:00
hash_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
heap.h Change RocksDB License 2017-07-15 16:11:23 -07:00
heap_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
kv_map.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_buffer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_buffer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_write_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
logging.h Change RocksDB License 2017-07-15 16:11:23 -07:00
memory_usage.h Change RocksDB License 2017-07-15 16:11:23 -07:00
mpsc.h Change RocksDB License 2017-07-15 16:11:23 -07:00
murmurhash.cc gcc-7/i386: markup intentional fallthroughs 2017-08-08 08:56:52 -07:00
murmurhash.h Change RocksDB License 2017-07-15 16:11:23 -07:00
mutexlock.h Change RocksDB License 2017-07-15 16:11:23 -07:00
random.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
random.h Change RocksDB License 2017-07-15 16:11:23 -07:00
rate_limiter.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
rate_limiter.h Change RocksDB License 2017-07-15 16:11:23 -07:00
rate_limiter_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
slice.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
slice_transform_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_manager_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_manager_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
status.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
status_message.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
stderr_logger.h Change RocksDB License 2017-07-15 16:11:23 -07:00
stop_watch.h Change RocksDB License 2017-07-15 16:11:23 -07:00
string_util.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
string_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sync_point.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
sync_point.h Change RocksDB License 2017-07-15 16:11:23 -07:00
testharness.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
testharness.h Change RocksDB License 2017-07-15 16:11:23 -07:00
testutil.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
testutil.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
thread_list_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
thread_local.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
thread_local.h Change RocksDB License 2017-07-15 16:11:23 -07:00
thread_local_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
thread_operation.h Change RocksDB License 2017-07-15 16:11:23 -07:00
threadpool_imp.cc Introduce bottom-pri thread pool for large universal compactions 2017-08-03 15:43:29 -07:00
threadpool_imp.h Change RocksDB License 2017-07-15 16:11:23 -07:00
timer_queue.h Change RocksDB License 2017-07-15 16:11:23 -07:00
timer_queue_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_test_util.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_test_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
xxhash.cc fixed typo 2017-06-05 11:27:34 -07:00
xxhash.h Prevent xxhash symbols from polluting global namespace 2015-03-12 12:07:10 -07:00