rocksdb/utilities
Maysam Yabandeh 52aab66424 WritePrepared Txn: enable TryAgain for duplicates at the end of the batch
Summary:
The WriteBatch::Iterate will try with a larger sequence number if the memtable reports a duplicate. This status is specified with TryAgain status. So far the assumption was that the last entry in the batch will never return TryAgain, which is correct when WAL is created via WritePrepared since it always appends a batch separator if a natural one does not exist. However when reading a WAL generated by WriteCommitted this batch separator might  not exist. Although WritePrepared is not supposed to be able to read the WAL generated by WriteCommitted we should avoid confusing scenarios in which the behavior becomes unpredictable. The path fixes that by allowing TryAgain even for the last entry of the write batch.
Closes https://github.com/facebook/rocksdb/pull/3747

Differential Revision: D7708391

Pulled By: maysamyabandeh

fbshipit-source-id: bfaddaa9b14a4cdaff6977f6f63c789a6ab1ee0d
2018-05-08 14:13:12 -07:00
..
backupable Fixed buffer overrun in BackupEngineImpl::BackupMeta::StoreToFile 2018-03-22 14:08:10 -07:00
blob_db BlobDB: Fix BlobDBImpl::GCFileAndUpdateLSM issues 2018-03-21 16:30:09 -07:00
cassandra Comment out unused variables 2018-03-05 13:13:41 -08:00
checkpoint Fix race condition via concurrent FlushWAL 2018-03-26 16:29:56 -07:00
compaction_filters Comment out unused variables 2018-03-05 13:13:41 -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 Comment out unused variables 2018-03-05 13:13:41 -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 Support StringAppendOperator(delimiter_char) constructor in java-api 2018-03-08 16:17:47 -08:00
option_change_migration Change RocksDB License 2017-07-15 16:11:23 -07:00
options Comment out unused variables 2018-03-05 13:13:41 -08:00
persistent_cache Comment out unused variables 2018-03-05 13:13:41 -08:00
redis Use nullptr instead of NULL / 0 more consistently. 2018-03-07 12:42:12 -08:00
simulator_cache Comment out unused variables 2018-03-05 13:13:41 -08:00
spatialdb Comment out unused variables 2018-03-05 13:13:41 -08:00
table_properties_collectors Comment out unused variables 2018-03-05 13:13:41 -08:00
transactions WritePrepared Txn: enable TryAgain for duplicates at the end of the batch 2018-05-08 14:13:12 -07:00
ttl Comment out unused variables 2018-03-05 13:13:41 -08:00
write_batch_with_index Comment out unused variables 2018-03-05 13:13:41 -08:00
col_buf_decoder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
col_buf_decoder.h Comment out unused variables 2018-03-05 13:13:41 -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 Support StringAppendOperator(delimiter_char) constructor in java-api 2018-03-08 16:17:47 -08:00
object_registry_test.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
util_merge_operators_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00