Revision 58b12dfe37784ce1bd67a03643147ab94f590451 authored by Reid Horuff on 06 March 2017, 23:04:36 UTC, committed by Facebook Github Bot on 06 March 2017, 23:09:11 UTC
Summary: Relating to #1903: In MaybeFlushColumnFamilies() we want to modify the 'getting_flushed' flag before releasing the db mutex when SwitchMemtable() is called. The following 2 actions need to be atomic in MaybeFlushColumnFamilies() - getting_flushed is false on oldest log - we determine that all CFs can be flushed to successfully release oldest log - we set getting_flushed = true on the oldest log. ------- - getting_flushed is false on oldest log - we determine that all CFs can NOT be flushed to successfully release oldest log - we set unable_to_flush_oldest_log_ = true on the oldest log. #### In the 2pc case: T1 enters function but is unable to flush all CFs to release log T1 sets unable_to_flush_oldest_log_ = true T1 begins flushing all CFs possible T2 enters function but is unable to flush all CFs to release log T2 sees unable_to_flush_oldes_log_ has been set so exits T3 enters function and will be able to flush all CFs to release oldest log T3 sets getting_flushed = true on oldes Closes https://github.com/facebook/rocksdb/pull/1909 Differential Revision: D4646235 Pulled By: reidHoruff fbshipit-source-id: c8d0447
1 parent f8a4ea0
File | Mode | Size |
---|---|---|
dump | ||
rdb | ||
CMakeLists.txt | -rw-r--r-- | 544 bytes |
Dockerfile | -rw-r--r-- | 81 bytes |
auto_sanity_test.sh | -rwxr-xr-x | 2.6 KB |
benchmark.sh | -rwxr-xr-x | 16.5 KB |
benchmark_leveldb.sh | -rwxr-xr-x | 5.1 KB |
check_format_compatible.sh | -rwxr-xr-x | 3.8 KB |
db_bench.cc | -rw-r--r-- | 851 bytes |
db_bench_tool.cc | -rw-r--r-- | 175.7 KB |
db_bench_tool_test.cc | -rw-r--r-- | 9.7 KB |
db_crashtest.py | -rw-r--r-- | 13.2 KB |
db_repl_stress.cc | -rw-r--r-- | 4.5 KB |
db_sanity_test.cc | -rw-r--r-- | 8.4 KB |
db_stress.cc | -rw-r--r-- | 84.1 KB |
dbench_monitor | -rwxr-xr-x | 2.6 KB |
generate_random_db.sh | -rwxr-xr-x | 726 bytes |
ldb.cc | -rw-r--r-- | 602 bytes |
ldb_cmd.cc | -rw-r--r-- | 91.8 KB |
ldb_cmd_impl.h | -rw-r--r-- | 13.6 KB |
ldb_cmd_test.cc | -rw-r--r-- | 1.8 KB |
ldb_test.py | -rw-r--r-- | 23.6 KB |
ldb_tool.cc | -rw-r--r-- | 4.3 KB |
pflag | -rwxr-xr-x | 4.0 KB |
reduce_levels_test.cc | -rw-r--r-- | 5.2 KB |
regression_test.sh | -rwxr-xr-x | 12.7 KB |
rocksdb_dump_test.sh | -rwxr-xr-x | 325 bytes |
run_flash_bench.sh | -rwxr-xr-x | 13.4 KB |
run_leveldb.sh | -rwxr-xr-x | 6.2 KB |
sample-dump.dmp | -rw-r--r-- | 100 bytes |
sst_dump.cc | -rw-r--r-- | 611 bytes |
sst_dump_test.cc | -rw-r--r-- | 6.4 KB |
sst_dump_tool.cc | -rw-r--r-- | 21.4 KB |
sst_dump_tool_imp.h | -rw-r--r-- | 2.6 KB |
verify_random_db.sh | -rwxr-xr-x | 710 bytes |
write_stress.cc | -rw-r--r-- | 10.8 KB |
write_stress_runner.py | -rw-r--r-- | 2.2 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...