rocksdb/tools
sdong a3960fc875 Move pipeline write waiting logic into WaitForPendingWrites() (#5716)
Summary:
In pipeline writing mode, memtable switching needs to wait for memtable writing to finish to make sure that when memtables are made immutable, inserts are not going to them. This is currently done in DBImpl::SwitchMemtable(). This is done after flush_scheduler_.TakeNextColumnFamily() is called to fetch the list of column families to switch. The function flush_scheduler_.TakeNextColumnFamily() itself, however, is not thread-safe when being called together with flush_scheduler_.ScheduleFlush().
This change provides a fix, which moves the waiting logic before flush_scheduler_.TakeNextColumnFamily(). WaitForPendingWrites() is a natural place where the logic can happen.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5716

Test Plan: Run all tests with ASAN and TSAN.

Differential Revision: D18217658

fbshipit-source-id: b9c5e765c9989645bf10afda7c5c726c3f82f6c3
2019-10-29 18:16:36 -07:00
..
advisor Rules Advisor: some fixes to support fetching stats from ODS (#4223) 2018-08-02 15:42:42 -07:00
block_cache_analyzer Fix a compile error (#5864) 2019-09-30 14:02:19 -07:00
dump simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
rdb Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
analyze_txn_stress_test.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
auto_sanity_test.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
benchmark_leveldb.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
benchmark.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -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 more release versions to tools/check_format_compatible.sh (#5518) 2019-06-28 17:41:58 -07:00
CMakeLists.txt cmake support for linux and osx (#1358) 2016-09-28 11:53:15 -07:00
db_bench_tool_test.cc Refactor trimming logic for immutable memtables (#5022) 2019-08-23 13:55:34 -07:00
db_bench_tool.cc Use FLAGS_env for certain operations in db_bench (#5943) 2019-10-22 11:43:21 -07:00
db_bench.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
db_crashtest.py Move pipeline write waiting logic into WaitForPendingWrites() (#5716) 2019-10-29 18:16:36 -07:00
db_repl_stress.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
db_sanity_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_stress_tool.cc db_stress: CF Consistency check to use random CF to validate iterator results (#5983) 2019-10-29 18:16:35 -07:00
db_stress.cc Expose db stress tests (#5937) 2019-10-18 09:46:44 -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 Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
ingest_external_sst.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
ldb_cmd_impl.h Support custom env in sst_dump (#5845) 2019-10-08 19:19:12 -07:00
ldb_cmd_test.cc Support custom env in sst_dump (#5845) 2019-10-08 19:19:12 -07:00
ldb_cmd.cc Support decoding blob indexes in sst_dump (#5926) 2019-10-17 19:36:54 -07:00
ldb_test.py Support custom env in sst_dump (#5845) 2019-10-08 19:19:12 -07:00
ldb_tool.cc Support custom env in sst_dump (#5845) 2019-10-08 19:19:12 -07: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 Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
regression_test.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
report_lite_binary_size.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
rocksdb_dump_test.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
run_flash_bench.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
run_leveldb.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -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 Support custom env in sst_dump (#5845) 2019-10-08 19:19:12 -07:00
sst_dump_tool_imp.h Support decoding blob indexes in sst_dump (#5926) 2019-10-17 19:36:54 -07:00
sst_dump_tool.cc Fix PlainTableReader not to crash sst_dump (#5940) 2019-10-18 14:44:42 -07:00
sst_dump.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
trace_analyzer_test.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
trace_analyzer_tool.cc Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
trace_analyzer_tool.h Move util/trace_replay.* to trace_replay/ (#5376) 2019-06-03 13:25:26 -07:00
trace_analyzer.cc RocksDB Trace Analyzer (#4091) 2018-08-13 11:44:02 -07:00
verify_random_db.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
write_external_sst.sh Add copyright headers per FB open-source checkup tool. (#5199) 2019-04-18 10:55:01 -07:00
write_stress_runner.py Fix interpreter lines for files with python2-only syntax. 2019-07-09 10:51:37 -07:00
write_stress.cc Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00