rocksdb/utilities
agiardullo 3bfd3d39a3 Use SST files for Transaction conflict detection
Summary:
Currently, transactions can fail even if there is no actual write conflict.  This is due to relying on only the memtables to check for write-conflicts.  Users have to tune memtable settings to try to avoid this, but it's hard to figure out exactly how to tune these settings.

With this diff, TransactionDB will use both memtables and SST files to determine if there are any write conflicts.  This relies on the fact that BlockBasedTable stores sequence numbers for all writes that happen after any open snapshot.  Also, D50295 is needed to prevent SingleDelete from disappearing writes (the TODOs in this test code will be fixed once the other diff is approved and merged).

Note that Optimistic transactions will still rely on tuning memtable settings as we do not want to read from SST while on the write thread.  Also, memtable settings can still be used to reduce how often TransactionDB needs to read SST files.

Test Plan: unit tests, db bench

Reviewers: rven, yhchiang, kradhakrishnan, IslamAbdelRahman, sdong

Reviewed By: sdong

Subscribers: dhruba, leveldb, yoshinorim

Differential Revision: https://reviews.facebook.net/D50475
2015-12-11 12:34:11 -08:00
..
backupable Fix ms version Appveyor build error 2015-11-30 11:07:47 -08:00
checkpoint No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
compaction_filters RemoveEmptyValueCompactionFilter - A compaction filter which removes entries which have an empty value 2015-07-16 11:50:10 +01:00
convenience Add function 'GetInfoLogList()' 2015-08-05 16:16:46 -07:00
document Enable C4267 warning 2015-11-24 16:33:09 +03:00
flashcache Fix the compilation error in flashcache.cc on Mac 2015-04-07 15:27:23 -07:00
geodb Delete test iterators 2015-11-05 13:30:51 -08:00
leveldb_options Added CompatibleOptions for compatibility with LevelDB Options 2014-11-20 19:24:39 -08:00
memory Fix build broken by previous commit of "option helper refactor" 2015-11-17 16:52:54 -08:00
merge_operators Lint everything 2015-11-16 12:56:21 -08:00
options Add CheckOptionsCompatibility() API to options_util 2015-11-12 16:52:51 -08:00
redis Lint everything 2015-11-16 12:56:21 -08:00
spatialdb Block spatial_db_test in ROCKSDB_LITE 2015-07-13 18:35:03 -07:00
table_properties_collectors Pass column family ID to table property collector 2015-10-09 14:36:51 -07:00
transactions Use SST files for Transaction conflict detection 2015-12-11 12:34:11 -08:00
ttl Skip unsupported tests in ROCKSDB_LITE 2015-07-20 11:24:54 -07:00
write_batch_with_index fix typos in comments 2015-12-11 01:54:48 +09:00
env_mirror.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
merge_operators.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00