rocksdb/utilities
Reid Horuff c27061dae7 [rocksdb] 2PC double recovery bug fix
Summary:
1. prepare()
2. crash
3. recover
4. commit()
5. crash
6. data is lost

This is due to the transaction data still only residing in the WAL but because the logs were flushed on the first recovery the data is ignored on the second recovery. We must scan all logs found on recovery and only ignore redundant data at the time of replay. It is not possible to know which logs still contain relevant data at time of recovery. We cannot simply ignore a log because all of the non-2pc data it contains has already been written to L0.

The changes made to MemTableInserter are to ensure that prepared sections are still recovered even if all of the non-2pc data in that log has already been flushed to L0.

Test Plan: Provided test.

Reviewers: sdong

Subscribers: andrewkr, hermanlee4, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D57729
2016-05-10 14:06:07 -07:00
..
backupable Fix BackupableDBTest 2016-04-26 16:07:04 -07:00
checkpoint Forge current file for checkpoint 2016-03-17 10:07:21 -07:00
compaction_filters Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
convenience Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
document Alpine Linux Build (#990) 2016-04-22 16:49:12 -07:00
flashcache Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
geodb Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
leveldb_options Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
memory Temporarily disable unstable tests in memory_test.cc 2016-02-09 16:28:34 -08:00
merge_operators Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options Relax the check condition of prefix_extractor in CheckOptionsCompatibility 2016-02-19 14:42:24 -08:00
redis Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
spatialdb fix wrong assignment of level0_stop_writes_trigger in spatialdb (#1061) 2016-04-07 09:02:28 -07:00
table_properties_collectors Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
transactions [rocksdb] 2PC double recovery bug fix 2016-05-10 14:06:07 -07:00
ttl Skip unsupported tests in ROCKSDB_LITE 2015-07-20 11:24:54 -07:00
write_batch_with_index Modification of WriteBatch to support two phase commit 2016-05-10 14:06:07 -07:00
env_mirror.cc Fix warning in release 2015-12-23 22:38:12 -08:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
merge_operators.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00