rocksdb/db/db_impl
Yanqin Jin 7177dc46a1 Handle missing WAL in secondary mode (#5323)
Summary:
In secondary mode, it is possible that the secondary lists the primary's WAL
directory, finds a WAL and tries to open it. It is possible that the primary
deletes the WAL after secondary listing dir but before the secondary opening
it. Then the secondary will fail to open the WAL file with a PathNotFound
status. In this case, we can return OK without replaying WAL and optionally
replay more MANIFEST.

Test Plan (on my dev machine):
Without this PR, the following will fail several times out of 100 runs.
```
~/gtest-parallel/gtest-parallel -r 100 -w 16 ./db_secondary_test --gtest_filter=DBSecondaryTest.SwitchToNewManifestDuringOpen
```
With this PR, the above should always succeed.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5323

Differential Revision: D15763878

Pulled By: riversand963

fbshipit-source-id: c7164fa7cb8d9001abc258b6a2dc93613e4f38ff
2019-06-11 13:08:28 -07:00
..
db_impl_compaction_flush.cc Potential fix for stress test failure due to "SST file ahead of WAL" error (#5412) 2019-06-07 15:35:47 -07:00
db_impl_debug.cc Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
db_impl_experimental.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
db_impl_files.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
db_impl_open.cc Potential fix for stress test failure due to "SST file ahead of WAL" error (#5412) 2019-06-07 15:35:47 -07:00
db_impl_readonly.cc Make format 2019-05-31 15:24:43 -07:00
db_impl_readonly.h Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
db_impl_secondary.cc Handle missing WAL in secondary mode (#5323) 2019-06-11 13:08:28 -07:00
db_impl_secondary.h Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
db_impl_write.cc WritePrepared: reduce prepared_mutex_ overhead (#5420) 2019-06-10 11:53:31 -07:00
db_impl.cc TransactionUtil::CheckKey() to skip unnecessary history (#4941) 2019-06-11 11:46:42 -07:00
db_impl.h TransactionUtil::CheckKey() to skip unnecessary history (#4941) 2019-06-11 11:46:42 -07:00
db_secondary_test.cc Improve memtable earliest seqno assignment for secondary instance (#5413) 2019-06-10 12:58:14 -07:00