rocksdb/options
Yi Wu 07bdcb91fe New WriteImpl to pipeline WAL/memtable write
Summary:
PipelineWriteImpl is an alternative approach to WriteImpl. In WriteImpl, only one thread is allow to write at the same time. This thread will do both WAL and memtable writes for all write threads in the write group. Pending writers wait in queue until the current writer finishes. In the pipeline write approach, two queue is maintained: one WAL writer queue and one memtable writer queue. All writers (regardless of whether they need to write WAL) will still need to first join the WAL writer queue, and after the house keeping work and WAL writing, they will need to join memtable writer queue if needed. The benefit of this approach is that
1. Writers without memtable writes (e.g. the prepare phase of two phase commit) can exit write thread once WAL write is finish. They don't need to wait for memtable writes in case of group commit.
2. Pending writers only need to wait for previous WAL writer finish to be able to join the write thread, instead of wait also for previous memtable writes.

Merging #2056 and #2058 into this PR.
Closes https://github.com/facebook/rocksdb/pull/2286

Differential Revision: D5054606

Pulled By: yiwu-arbug

fbshipit-source-id: ee5b11efd19d3e39d6b7210937b11cefdd4d1c8d
2017-05-19 14:26:42 -07:00
..
cf_options.cc Support ingest_behind for IngestExternalFile 2017-05-17 11:42:42 -07:00
cf_options.h Support ingest_behind for IngestExternalFile 2017-05-17 11:42:42 -07:00
db_options.cc New WriteImpl to pipeline WAL/memtable write 2017-05-19 14:26:42 -07:00
db_options.h New WriteImpl to pipeline WAL/memtable write 2017-05-19 14:26:42 -07:00
options_helper.cc Support ingest_behind for IngestExternalFile 2017-05-17 11:42:42 -07:00
options_helper.h New WriteImpl to pipeline WAL/memtable write 2017-05-19 14:26:42 -07:00
options_parser.cc AIX and Solaris Sparc Support 2017-04-21 20:48:04 -07:00
options_parser.h Move some files under util/ to separate dirs 2017-04-05 19:09:16 -07:00
options_sanity_check.cc Move some files under util/ to separate dirs 2017-04-05 19:09:16 -07:00
options_sanity_check.h Move some files under util/ to separate dirs 2017-04-05 19:09:16 -07:00
options_settable_test.cc New WriteImpl to pipeline WAL/memtable write 2017-05-19 14:26:42 -07:00
options_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
options.cc New WriteImpl to pipeline WAL/memtable write 2017-05-19 14:26:42 -07:00