rocksdb/utilities/transactions
Maysam Yabandeh f2827845f9 WritePrepared Txn: smallest_prepare optimization
Summary:
The is an optimization to reduce lookup in the CommitCache when querying IsInSnapshot. The optimization takes the smallest uncommitted data at the time that the snapshot was taken and if the sequence number of the read data is lower than that number it assumes the data as committed.
To implement this optimization two changes are required: i) The AddPrepared function must be called sequentially to avoid out of order insertion in the PrepareHeap (otherwise the top of the heap does not indicate the smallest prepare in future too), ii) non-2PC transactions also call AddPrepared if they do not commit in one step.
Closes https://github.com/facebook/rocksdb/pull/3649

Differential Revision: D7388630

Pulled By: maysamyabandeh

fbshipit-source-id: b79506238c17467d590763582960d4d90181c600
2018-04-12 13:55:36 -07:00
..
optimistic_transaction_db_impl.cc Refactor PessimisticTransaction 2017-08-07 16:12:29 -07:00
optimistic_transaction_db_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
optimistic_transaction_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
optimistic_transaction.cc Update WritePrepared with the pseudo code 2017-08-16 16:57:47 -07:00
optimistic_transaction.h Update WritePrepared with the pseudo code 2017-08-16 16:57:47 -07:00
pessimistic_transaction_db.cc Fix some typos in comments and docs. 2018-03-08 10:27:25 -08:00
pessimistic_transaction_db.h WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00
pessimistic_transaction.cc WritePrepared Txn: Duplicate Keys, Txn Part 2018-02-05 18:43:24 -08:00
pessimistic_transaction.h WritePrepared Txn: Duplicate Keys, Txn Part 2018-02-05 18:43:24 -08:00
snapshot_checker.cc WritePrepared Txn: Move DB class to its own file 2017-11-02 11:14:30 -07:00
transaction_base.cc Suppress unused warnings 2018-02-02 12:27:07 -08:00
transaction_base.h WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00
transaction_db_mutex_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_db_mutex_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_lock_mgr.cc save redundant key lookup in map of locked keys 2018-02-20 17:44:44 -08:00
transaction_lock_mgr.h Added mechanism to track deadlock chain 2017-08-17 18:56:21 -07:00
transaction_test.cc WritePrepared Txn: make recoverable state visible after flush 2018-03-28 12:12:08 -07:00
transaction_test.h WritePrepared Txn: Fix bug with duplicate keys during recovery 2018-03-05 10:57:59 -08:00
transaction_util.cc WritePrepared Txn: ValidateSnapshot 2017-11-01 19:11:09 -07:00
transaction_util.h WritePrepared Txn: ValidateSnapshot 2017-11-01 19:11:09 -07:00
write_prepared_transaction_test.cc WritePrepared Txn: AddPrepared for all sub-batches 2018-03-23 17:30:04 -07:00
write_prepared_txn_db.cc WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00
write_prepared_txn_db.h WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00
write_prepared_txn.cc WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00
write_prepared_txn.h WritePrepared Txn: smallest_prepare optimization 2018-04-12 13:55:36 -07:00