rocksdb/db
Danny Guo b47812fba6 [rocksdb] new CompactionFilterV2 API
Summary:
This diff adds a new CompactionFilterV2 API that roll up the
decisions of kv pairs during compactions. These kv pairs must share the
same key prefix. They are buffered inside the db.

    typedef std::vector<Slice> SliceVector;
    virtual std::vector<bool> Filter(int level,
                                 const SliceVector& keys,
                                 const SliceVector& existing_values,
                                 std::vector<std::string>* new_values,
                                 std::vector<bool>* values_changed
                                 ) const = 0;

Application can override the Filter() function to operate
on the buffered kv pairs. More details in the inline documentation.

Test Plan:
make check. Added unit tests to make sure Keep, Delete,
Change all works.

Reviewers: haobo

CCs: leveldb

Differential Revision: https://reviews.facebook.net/D15087
2014-03-24 20:47:53 -07:00
..
builder.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
builder.h [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
c.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
c_test.c Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
compaction.cc Don't compact with zero input files 2014-03-19 16:01:25 -07:00
compaction.h CompactionContext to include is_manual_compaction 2014-02-12 12:24:18 -08:00
compaction_picker.cc ComputeCompactionScore in CompactionPicker 2014-03-19 16:52:26 -07:00
compaction_picker.h Buffer info logs when picking compactions and write them out after releasing the mutex 2014-03-05 15:36:32 -08:00
corruption_test.cc Fix double-free in corruption_test 2014-03-20 14:37:30 -07:00
db_bench.cc Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
db_filesnapshot.cc Move functions from VersionSet to Version 2014-01-15 16:18:04 -08:00
db_impl.cc [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
db_impl.h [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
db_impl_readonly.cc Sanity check on Open 2014-03-20 14:18:29 -07:00
db_impl_readonly.h CompactRange() to return status 2014-01-23 16:41:46 -08:00
db_iter.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_stats_logger.cc Move functions from VersionSet to Version 2014-01-15 16:18:04 -08:00
db_test.cc [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
dbformat.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
dbformat.h [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
deletefile_test.cc Start DeleteFileTest with clean plate 2013-11-15 16:30:23 -08:00
filename.cc Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
filename.h Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
filename_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
internal_stats.cc Add a DB property to indicate number of background errors encountered 2014-03-18 14:28:30 -07:00
internal_stats.h Add a DB property to indicate number of background errors encountered 2014-03-18 14:28:30 -07:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Make Log::Reader more robust 2014-02-28 13:19:47 -08:00
log_reader.h Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_test.cc Make it compile on Debian/GCC 4.7 2014-03-14 22:44:35 +00:00
log_writer.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_writer.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
memtable.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
memtable.h A heuristic way to check if a memtable is full 2014-03-12 16:40:14 -07:00
memtable_list.cc Several easy-to-add properties related to compaction and flushes 2014-03-18 14:00:09 -07:00
memtable_list.h Several easy-to-add properties related to compaction and flushes 2014-03-18 14:00:09 -07:00
merge_context.h Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
merge_helper.cc [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
merge_helper.h [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
merge_operator.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
merge_test.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
perf_context_test.cc Missing includes 2014-03-14 13:02:20 -07:00
plain_table_db_test.cc Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
prefix_filter_iterator.h Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
prefix_test.cc Fix HashSkipList and HashLinkedList SIGSEGV 2014-03-14 10:02:04 -07:00
repair.cc Optimize fallocation 2014-03-17 21:52:14 -07:00
simple_table_db_test.cc Make table properties shareable 2014-02-07 19:26:49 -08:00
skiplist.h Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
skiplist_test.cc Clean up arena API 2014-01-30 22:10:10 -08:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc Expose the table properties to application 2014-02-13 16:28:21 -08:00
table_cache.h Expose the table properties to application 2014-02-13 16:28:21 -08:00
table_properties_collector.cc Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector.h Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector_test.cc Fix problem 3 for issue #80 2014-02-11 17:52:18 -08:00
tailing_iter.cc Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
tailing_iter.h Tailing iterator 2014-01-23 16:26:08 -08:00
transaction_log_impl.cc Revert "Fix bad merge of D16791 and D16767" 2014-03-12 09:37:43 -07:00
transaction_log_impl.h Revert "Fix bad merge of D16791 and D16767" 2014-03-12 09:37:43 -07:00
version_edit.cc disable the log_number check in Recover() 2014-03-18 12:46:29 -07:00
version_edit.h disable the log_number check in Recover() 2014-03-18 12:46:29 -07:00
version_edit_test.cc Remove compaction pointers 2014-01-16 14:06:53 -08:00
version_set.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
version_set.h ComputeCompactionScore in CompactionPicker 2014-03-19 16:52:26 -07:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
write_batch.cc Merge branch 'master' into performance 2014-01-23 16:32:49 -08:00
write_batch_internal.h In-place updates for equal keys and similar sized values 2013-10-31 11:27:12 -07:00
write_batch_test.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00