rocksdb/utilities
reid horuff 6f71d3b68b Improve perf of Pessimistic Transaction expirations (and optimistic transactions)
Summary:
copy from task 8196669:

1) Optimistic transactions do not support batching writes from different threads.
2) Pessimistic transactions do not support batching writes if an expiration time is set.

In these 2 cases, we currently do not do any write batching in DBImpl::WriteImpl() because there is a WriteCallback that could decide at the last minute to abort the write.  But we could support batching write operations with callbacks if we make sure to process the callbacks correctly.

To do this, we would first need to modify write_thread.cc to stop preventing writes with callbacks from being batched together.  Then we would need to change DBImpl::WriteImpl() to call all WriteCallback's in a batch, only write the batches that succeed, and correctly set the state of each batch's WriteThread::Writer.

Test Plan: Added test WriteWithCallbackTest to write_callback_test.cc which creates multiple client threads and verifies that writes are batched and executed properly.

Reviewers: hermanlee4, anthony, ngbronson

Subscribers: leveldb, dhruba

Differential Revision: https://reviews.facebook.net/D52863
2016-02-05 10:44:13 -08:00
..
backupable [directory includes cleanup] Finish removing util->db dependencies 2016-01-26 10:49:24 -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 Fix clang warnings regarding unnecessary std::move 2015-12-24 04:10:00 +08:00
flashcache Fix clang warnings regarding unnecessary std::move 2015-12-24 04:10:00 +08:00
geodb As per google coding standard replace "using" in option_builder.cc and 2016-01-20 00:27:29 +00: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 Enable MS compiler warning c4244. 2015-12-11 16:47:34 -08:00
table_properties_collectors Pass column family ID to table property collector 2015-10-09 14:36:51 -07:00
transactions Improve perf of Pessimistic Transaction expirations (and optimistic transactions) 2016-02-05 10:44:13 -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 Fix warning in release 2015-12-23 22:38:12 -08: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