rocksdb/include/rocksdb/utilities
Maysam Yabandeh 680864ae54 WritePrepared Txn: Fix bug with duplicate keys during recovery
Summary:
Fix the following bugs:
- During recovery a duplicate key was inserted twice into the write batch of the recovery transaction,
once when the memtable returns false (because it was duplicates) and once for the 2nd attempt. This would result into different SubBatch count measured when the recovered transactions is committing.
- If a cf is flushed during recovery the memtable is not available to assist in detecting the duplicate key. This could result into not advancing the sequence number when iterating over duplicate keys of a flushed cf and hence inserting the next key with the wrong sequence number.
- SubBacthCounter would reset the comparator to default comparator after the first duplicate key. The 2nd duplicate key hence would have gone through a wrong comparator and not being detected.
Closes https://github.com/facebook/rocksdb/pull/3562

Differential Revision: D7149440

Pulled By: maysamyabandeh

fbshipit-source-id: 91ec317b165f363f5d11ff8b8c47c81cebb8ed77
2018-03-05 10:57:59 -08:00
..
lua Change RocksDB License 2017-07-15 16:11:23 -07:00
backupable_db.h support opening zero backups during engine init 2017-09-12 13:26:34 -07:00
checkpoint.h Change RocksDB License 2017-07-15 16:11:23 -07:00
convenience.h Change RocksDB License 2017-07-15 16:11:23 -07:00
date_tiered_db.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_ttl.h Add possibility to change ttl on open DB 2018-01-18 10:42:15 -08:00
debug.h Blob DB: Inline small values in base DB 2017-10-26 12:30:54 -07:00
document_db.h Change RocksDB License 2017-07-15 16:11:23 -07:00
env_librados.h Change RocksDB License 2017-07-15 16:11:23 -07:00
env_mirror.h Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
geo_db.h Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
info_log_finder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
json_document.h Change RocksDB License 2017-07-15 16:11:23 -07:00
ldb_cmd_execute_result.h Change RocksDB License 2017-07-15 16:11:23 -07:00
ldb_cmd.h Change RocksDB License 2017-07-15 16:11:23 -07:00
leveldb_options.h Change RocksDB License 2017-07-15 16:11:23 -07:00
memory_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
object_registry.h Change RocksDB License 2017-07-15 16:11:23 -07:00
optimistic_transaction_db.h Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
option_change_migration.h Change RocksDB License 2017-07-15 16:11:23 -07:00
options_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sim_cache.h CacheActivityLogger, component to log cache activity into a file 2017-07-28 12:36:48 -07:00
spatial_db.h Change RocksDB License 2017-07-15 16:11:23 -07:00
stackable_db.h StackableDB optionally take shared ownership of the underlying DB 2018-01-26 15:28:44 -08:00
table_properties_collectors.h Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_db_mutex.h Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_db.h WritePrepared Txn: use TransactionDBWriteOptimizations (2nd attempt) 2018-02-12 16:43:40 -08:00
transaction.h Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
utility_db.h Ensure Windows build w/o port/port.h in public headers 2015-07-16 12:10:16 -07:00
write_batch_with_index.h WritePrepared Txn: Fix bug with duplicate keys during recovery 2018-03-05 10:57:59 -08:00