Dhruba Borthakur 5e9f3a9aa7 Better locking in vectorrep that increases throughput to match speed of storage.
Summary:
There is a use-case where we want to insert data into rocksdb as
fast as possible. Vector rep is used for this purpose.

The background flush thread needs to flush the vectorrep to
storage. It acquires the dblock then sorts the vector, releases
the dblock and then writes the sorted vector to storage. This is
suboptimal because the lock is held during the sort, which
prevents new writes for occuring.

This patch moves the sorting of the vector rep to outside the
db mutex. Performance is now as fastas the underlying storage
system. If you are doing buffered writes to rocksdb files, then
you can observe throughput upwards of 200 MB/sec writes.

This is an early draft and not yet ready to be reviewed.

Test Plan:
make check

Task ID: #

Blame Rev:

Reviewers: haobo

Reviewed By: haobo

CC: leveldb, haobo

Differential Revision: https://reviews.facebook.net/D12987
2013-09-19 21:48:10 -07:00
..
2013-06-14 16:17:56 -07:00
2013-02-28 18:04:58 -08:00
2013-08-22 23:10:02 -07:00
2013-08-22 23:10:02 -07:00
2013-02-28 18:04:58 -08:00
2011-10-31 17:22:06 +00:00
2013-09-13 21:13:20 -07:00
2011-10-31 17:22:06 +00:00
2011-10-31 17:22:06 +00:00
2013-04-20 10:26:51 -07:00
2013-02-28 18:04:58 -08:00
2013-08-23 15:39:49 -07:00