Revision 247d0979aa1f3c317f4f6c73ff3dc88436735063 authored by Mike Kolupaev on 01 December 2016, 15:00:17 UTC, committed by Facebook Github Bot on 01 December 2016, 15:09:15 UTC
Summary:
This adds the ability for compaction filter to say "drop this key-value, and also drop everything up to key x". This will cause the compaction to seek input iterator to x, without reading the data. This can make compaction much faster when large consecutive chunks of data are filtered out. See the changes in include/rocksdb/compaction_filter.h for the new API.

Along the way this diff also adds ability for compaction filter changing merge operands, similar to how it can change values; we're not going to use this feature, it just seemed easier and cleaner to implement it than to document that it's not implemented :)

The diff is not as big as it may seem, about half of the lines are a test.
Closes https://github.com/facebook/rocksdb/pull/1599

Differential Revision: D4252092

Pulled By: al13n321

fbshipit-source-id: 41e1e48
1 parent 96fcefb
History
File Mode Size
auto_roll_logger.cc -rw-r--r-- 5.4 KB
auto_roll_logger.h -rw-r--r-- 3.9 KB
auto_roll_logger_test.cc -rw-r--r-- 16.2 KB
builder.cc -rw-r--r-- 8.0 KB
builder.h -rw-r--r-- 3.4 KB
c.cc -rw-r--r-- 78.3 KB
c_test.c -rw-r--r-- 33.9 KB
column_family.cc -rw-r--r-- 41.4 KB
column_family.h -rw-r--r-- 22.2 KB
column_family_test.cc -rw-r--r-- 106.8 KB
compact_files_test.cc -rw-r--r-- 8.1 KB
compacted_db_impl.cc -rw-r--r-- 5.5 KB
compacted_db_impl.h -rw-r--r-- 3.5 KB
compaction.cc -rw-r--r-- 15.2 KB
compaction.h -rw-r--r-- 11.7 KB
compaction_iteration_stats.h -rw-r--r-- 1.2 KB
compaction_iterator.cc -rw-r--r-- 21.9 KB
compaction_iterator.h -rw-r--r-- 7.1 KB
compaction_iterator_test.cc -rw-r--r-- 12.0 KB
compaction_job.cc -rw-r--r-- 52.0 KB
compaction_job.h -rw-r--r-- 5.5 KB
compaction_job_stats_test.cc -rw-r--r-- 35.6 KB
compaction_job_test.cc -rw-r--r-- 34.4 KB
compaction_picker.cc -rw-r--r-- 71.9 KB
compaction_picker.h -rw-r--r-- 15.9 KB
compaction_picker_test.cc -rw-r--r-- 45.0 KB
comparator_db_test.cc -rw-r--r-- 12.5 KB
convenience.cc -rw-r--r-- 936 bytes
corruption_test.cc -rw-r--r-- 14.6 KB
cuckoo_table_db_test.cc -rw-r--r-- 9.6 KB
db_block_cache_test.cc -rw-r--r-- 21.8 KB
db_bloom_filter_test.cc -rw-r--r-- 36.0 KB
db_compaction_filter_test.cc -rw-r--r-- 25.9 KB
db_compaction_test.cc -rw-r--r-- 83.6 KB
db_dynamic_level_test.cc -rw-r--r-- 17.0 KB
db_filesnapshot.cc -rw-r--r-- 4.4 KB
db_flush_test.cc -rw-r--r-- 1.9 KB
db_impl.cc -rw-r--r-- 227.6 KB
db_impl.h -rw-r--r-- 43.8 KB
db_impl_debug.cc -rw-r--r-- 5.5 KB
db_impl_experimental.cc -rw-r--r-- 5.4 KB
db_impl_readonly.cc -rw-r--r-- 6.7 KB
db_impl_readonly.h -rw-r--r-- 4.2 KB
db_info_dumper.cc -rw-r--r-- 3.7 KB
db_info_dumper.h -rw-r--r-- 516 bytes
db_inplace_update_test.cc -rw-r--r-- 5.7 KB
db_io_failure_test.cc -rw-r--r-- 8.3 KB
db_iter.cc -rw-r--r-- 37.8 KB
db_iter.h -rw-r--r-- 3.3 KB
db_iter_test.cc -rw-r--r-- 79.3 KB
db_iterator_test.cc -rw-r--r-- 55.5 KB
db_log_iter_test.cc -rw-r--r-- 9.6 KB
db_memtable_test.cc -rw-r--r-- 5.1 KB
db_options_test.cc -rw-r--r-- 11.4 KB
db_properties_test.cc -rw-r--r-- 45.7 KB
db_range_del_test.cc -rw-r--r-- 16.7 KB
db_sst_test.cc -rw-r--r-- 27.8 KB
db_table_properties_test.cc -rw-r--r-- 8.0 KB
db_tailing_iter_test.cc -rw-r--r-- 24.2 KB
db_test.cc -rw-r--r-- 191.9 KB
db_test2.cc -rw-r--r-- 77.6 KB
db_test_util.cc -rw-r--r-- 36.7 KB
db_test_util.h -rw-r--r-- 25.8 KB
db_universal_compaction_test.cc -rw-r--r-- 50.3 KB
db_wal_test.cc -rw-r--r-- 41.8 KB
dbformat.cc -rw-r--r-- 5.8 KB
dbformat.h -rw-r--r-- 18.5 KB
dbformat_test.cc -rw-r--r-- 6.9 KB
deletefile_test.cc -rw-r--r-- 16.1 KB
event_helpers.cc -rw-r--r-- 4.3 KB
event_helpers.h -rw-r--r-- 1.8 KB
experimental.cc -rw-r--r-- 1.6 KB
external_sst_file_ingestion_job.cc -rw-r--r-- 16.8 KB
external_sst_file_ingestion_job.h -rw-r--r-- 4.8 KB
external_sst_file_test.cc -rw-r--r-- 61.4 KB
fault_injection_test.cc -rw-r--r-- 16.4 KB
file_indexer.cc -rw-r--r-- 7.5 KB
file_indexer.h -rw-r--r-- 6.1 KB
file_indexer_test.cc -rw-r--r-- 9.8 KB
filename.cc -rw-r--r-- 12.2 KB
filename.h -rw-r--r-- 6.4 KB
filename_test.cc -rw-r--r-- 5.7 KB
flush_job.cc -rw-r--r-- 12.6 KB
flush_job.h -rw-r--r-- 3.4 KB
flush_job_test.cc -rw-r--r-- 8.0 KB
flush_scheduler.cc -rw-r--r-- 2.1 KB
flush_scheduler.h -rw-r--r-- 1.2 KB
forward_iterator.cc -rw-r--r-- 25.8 KB
forward_iterator.h -rw-r--r-- 5.2 KB
forward_iterator_bench.cc -rw-r--r-- 11.2 KB
inlineskiplist.h -rw-r--r-- 31.5 KB
inlineskiplist_test.cc -rw-r--r-- 16.8 KB
internal_stats.cc -rw-r--r-- 46.8 KB
internal_stats.h -rw-r--r-- 18.0 KB
job_context.h -rw-r--r-- 4.1 KB
listener_test.cc -rw-r--r-- 25.7 KB
log_format.h -rw-r--r-- 1.4 KB
log_reader.cc -rw-r--r-- 13.9 KB
log_reader.h -rw-r--r-- 5.5 KB
log_test.cc -rw-r--r-- 21.6 KB
log_writer.cc -rw-r--r-- 4.4 KB
log_writer.h -rw-r--r-- 3.6 KB
managed_iterator.cc -rw-r--r-- 7.0 KB
managed_iterator.h -rw-r--r-- 2.5 KB
manual_compaction_test.cc -rw-r--r-- 4.5 KB
memtable.cc -rw-r--r-- 31.6 KB
memtable.h -rw-r--r-- 16.0 KB
memtable_allocator.cc -rw-r--r-- 2.1 KB
memtable_allocator.h -rw-r--r-- 1.6 KB
memtable_list.cc -rw-r--r-- 15.6 KB
memtable_list.h -rw-r--r-- 9.3 KB
memtable_list_test.cc -rw-r--r-- 21.3 KB
memtablerep_bench.cc -rw-r--r-- 24.2 KB
merge_context.h -rw-r--r-- 3.2 KB
merge_helper.cc -rw-r--r-- 14.2 KB
merge_helper.h -rw-r--r-- 7.8 KB
merge_helper_test.cc -rw-r--r-- 11.2 KB
merge_operator.cc -rw-r--r-- 3.1 KB
merge_test.cc -rw-r--r-- 14.1 KB
options_file_test.cc -rw-r--r-- 3.6 KB
perf_context_test.cc -rw-r--r-- 21.9 KB
pinned_iterators_manager.h -rw-r--r-- 2.5 KB
plain_table_db_test.cc -rw-r--r-- 39.8 KB
prefix_test.cc -rw-r--r-- 28.7 KB
range_del_aggregator.cc -rw-r--r-- 9.4 KB
range_del_aggregator.h -rw-r--r-- 5.3 KB
repair.cc -rw-r--r-- 22.0 KB
repair_test.cc -rw-r--r-- 9.2 KB
skiplist.h -rw-r--r-- 15.6 KB
skiplist_test.cc -rw-r--r-- 10.2 KB
snapshot_impl.cc -rw-r--r-- 805 bytes
snapshot_impl.h -rw-r--r-- 3.6 KB
table_cache.cc -rw-r--r-- 14.2 KB
table_cache.h -rw-r--r-- 5.8 KB
table_properties_collector.cc -rw-r--r-- 4.1 KB
table_properties_collector.h -rw-r--r-- 4.3 KB
table_properties_collector_test.cc -rw-r--r-- 17.9 KB
transaction_log_impl.cc -rw-r--r-- 8.9 KB
transaction_log_impl.h -rw-r--r-- 4.3 KB
version_builder.cc -rw-r--r-- 13.6 KB
version_builder.h -rw-r--r-- 1.6 KB
version_builder_test.cc -rw-r--r-- 10.4 KB
version_edit.cc -rw-r--r-- 16.5 KB
version_edit.h -rw-r--r-- 9.2 KB
version_edit_test.cc -rw-r--r-- 6.3 KB
version_set.cc -rw-r--r-- 126.6 KB
version_set.h -rw-r--r-- 31.2 KB
version_set_test.cc -rw-r--r-- 14.6 KB
wal_manager.cc -rw-r--r-- 15.9 KB
wal_manager.h -rw-r--r-- 3.2 KB
wal_manager_test.cc -rw-r--r-- 9.5 KB
write_batch.cc -rw-r--r-- 44.1 KB
write_batch_base.cc -rw-r--r-- 3.0 KB
write_batch_internal.h -rw-r--r-- 7.1 KB
write_batch_test.cc -rw-r--r-- 25.9 KB
write_callback.h -rw-r--r-- 838 bytes
write_callback_test.cc -rw-r--r-- 9.9 KB
write_controller.cc -rw-r--r-- 3.8 KB
write_controller.h -rw-r--r-- 4.3 KB
write_controller_test.cc -rw-r--r-- 4.7 KB
write_thread.cc -rw-r--r-- 16.1 KB
write_thread.h -rw-r--r-- 11.0 KB
xfunc_test_points.cc -rw-r--r-- 4.3 KB
xfunc_test_points.h -rw-r--r-- 1.1 KB

back to top