rocksdb/tools
Andrew Kryczka 072ae671a7 Apply use_direct_io_for_flush_and_compaction to writes only
Summary:
Previously `DBOptions::use_direct_io_for_flush_and_compaction=true` combined with `DBOptions::use_direct_reads=false` could cause RocksDB to simultaneously read from two file descriptors for the same file, where background reads used direct I/O and foreground reads used buffered I/O. Our measurements found this mixed-mode I/O negatively impacted foreground read perf, compared to when only buffered I/O was used.

This PR makes the mixed-mode I/O situation impossible by repurposing `DBOptions::use_direct_io_for_flush_and_compaction` to only apply to background writes, and `DBOptions::use_direct_reads` to apply to all reads. There is no risk of direct background direct writes happening simultaneously with buffered reads since we never read from and write to the same file simultaneously.
Closes https://github.com/facebook/rocksdb/pull/3829

Differential Revision: D7915443

Pulled By: ajkr

fbshipit-source-id: 78bcbf276449b7e7766ab6b0db246f789fb1b279
2018-05-09 19:42:58 -07: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 benchmark.sh to use --max_background_job 2018-03-20 18:57:55 -07:00
blob_dump.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
check_format_compatible.sh Add 5.11 and 5.12 to tools/check_format_compatible.sh 2018-03-23 12:43:06 -07: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 Apply use_direct_io_for_flush_and_compaction to writes only 2018-05-09 19:42:58 -07:00
db_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_crashtest.py Refactor argument handling in db_crashtest.py 2018-05-09 13:42:41 -07:00
db_repl_stress.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
db_sanity_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_stress.cc Fix db_stress memory leak ASAN error 2018-05-04 16:45:15 -07: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 WritePrepared Txn: add write_committed option to dump_wal 2018-04-07 21:56:42 -07:00
ldb_cmd_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
ldb_cmd.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07: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 comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
pflag Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
reduce_levels_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -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 fix memory leak in two_level_iterator 2018-04-15 17:26:26 -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 comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -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