rocksdb/db
Dhruba Borthakur 806e264350 Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0.
Summary:
Rocks accumulates recent writes and deletes in the in-memory memtable.
When the memtable is full, it writes the contents on the memtable to
a file in L0.

This patch removes redundant records at the time of the flush. If there
are multiple versions of the same key in the memtable, then only the
most recent one is dumped into the output file. The purging of
redundant records occur only if the most recent snapshot is earlier
than the earliest record in the memtable.

Should we switch on this feature by default or should we keep this feature
turned off in the default settings?

Test Plan: Added test case to db_test.cc

Reviewers: sheki, vamsi, emayanke, heyongqiang

Reviewed By: sheki

CC: leveldb

Differential Revision: https://reviews.facebook.net/D8991
2013-03-04 00:01:47 -08:00
..
builder.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
builder.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
c_test.c Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
c.cc Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
corruption_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
db_bench.cc enable the ability to set key size in db_bench in rocksdb 2013-03-01 14:10:09 -08:00
db_filesnapshot.cc Fix all the lint errors. 2012-11-28 17:18:41 -08:00
db_impl_readonly.cc Fix for the weird behaviour encountered by ldb Get where it could read only the second-latest value 2013-02-20 10:45:52 -08:00
db_impl_readonly.h Add a readonly db 2012-11-07 14:19:48 -08:00
db_impl.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
db_impl.h Measure compaction time. 2013-02-22 11:38:40 -08:00
db_iter.cc A number of fixes: 2011-10-31 17:22:06 +00:00
db_iter.h A number of fixes: 2011-10-31 17:22:06 +00:00
db_statistics.h Refactor statistics. Remove individual functions like incNumFileOpens 2013-02-25 13:58:34 -08:00
db_stats_logger.cc remove boost 2012-09-16 19:33:43 -07:00
db_test.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
dbformat_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
dbformat.cc manifest_dump: Add --hex=1 option 2012-12-16 08:58:28 -08:00
dbformat.h Zero out redundant sequence numbers for kvs to increase compression efficiency 2013-02-18 21:51:15 -08:00
filename_test.cc Added meta-database support. 2012-12-17 11:26:59 -08:00
filename.cc Allow the logs to be purged by TTL. 2013-02-04 19:42:40 -08:00
filename.h Added meta-database support. 2012-12-17 11:26:59 -08:00
log_file.h GetUpdatesSince API to enable replication. 2012-12-07 11:42:13 -08:00
log_format.h A number of fixes: 2011-10-31 17:22:06 +00:00
log_reader.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
log_reader.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
log_test.cc Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
log_writer.cc Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
log_writer.h Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
memtable.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
memtable.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
memtablelist.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
memtablelist.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
repair.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
skiplist_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
skiplist.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
snapshot.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
table_cache.cc Refactor statistics. Remove individual functions like incNumFileOpens 2013-02-25 13:58:34 -08:00
table_cache.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
transaction_log_iterator_impl.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
transaction_log_iterator_impl.h Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
version_edit_test.cc Make some variables configurable for each db instance 2012-06-27 14:36:31 -07:00
version_edit.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
version_edit.h Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
version_set_reduce_num_levels.cc disable size compaction in ldb reduce_levels and added compression and file size parameter to it 2012-11-09 10:14:47 -08:00
version_set_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
version_set.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
version_set.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
write_batch_internal.h GetUpdatesSince API to enable replication. 2012-12-07 11:42:13 -08:00
write_batch_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
write_batch.cc added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00