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
..
backupable Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
blob_db Blob DB: remove existing garbage collection implementation 2018-03-02 12:57:23 -08:00
cassandra Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
checkpoint Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
compaction_filters Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
convenience Change RocksDB License 2017-07-15 16:11:23 -07:00
date_tiered WritePrepared Txn: Iterator 2017-10-09 17:15:28 -07:00
document Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
geodb Change RocksDB License 2017-07-15 16:11:23 -07:00
leveldb_options Change RocksDB License 2017-07-15 16:11:23 -07:00
lua Suppress unused warnings 2018-02-02 12:27:07 -08:00
memory Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_operators Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
option_change_migration Change RocksDB License 2017-07-15 16:11:23 -07:00
options Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
persistent_cache Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
redis Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
simulator_cache Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
spatialdb Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
table_properties_collectors Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
transactions WritePrepared Txn: Fix bug with duplicate keys during recovery 2018-03-05 10:57:59 -08:00
ttl Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
write_batch_with_index WritePrepared Txn: optimize SubBatchCnt 2018-02-22 18:12:26 -08:00
col_buf_decoder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
col_buf_decoder.h Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
col_buf_encoder.cc fix shift UBSAN error in col_buf_encoder.cc 2018-02-20 16:44:00 -08:00
col_buf_encoder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_exp.cc fix gflags namespace 2017-12-01 10:42:05 -08:00
column_aware_encoding_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_util.cc WritePrepared Txn: fix non-emptied PreparedHeap bug 2018-02-21 13:42:23 -08:00
column_aware_encoding_util.h Change RocksDB License 2017-07-15 16:11:23 -07:00
debug.cc Fix naming in InternalKey 2017-09-12 17:17:42 -07:00
env_librados_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_librados.cc Suppress lint in old files 2018-01-29 12:56:42 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_mirror.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_timed_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_timed.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_operators.h garbage collect tombstones in merge operator 2017-08-31 10:11:54 -07:00
object_registry_test.cc Back out "[codemod] - comment out unused parameters" 2018-02-22 12:43:17 -08:00
util_merge_operators_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00