146263887f
Summary: The subcompaction boundary picking logic does not currently guarantee that all user keys that differ only by timestamp get processed by the same subcompaction. This can cause issues with the `CompactionIterator` state machine: for instance, one subcompaction that processes a subset of such KVs might drop a tombstone based on the KVs it sees, while in reality the tombstone might not have been eligible to be optimized out. (See also https://github.com/facebook/rocksdb/issues/6645, which adjusted the way compaction inputs are picked for the same reason.) Pull Request resolved: https://github.com/facebook/rocksdb/pull/8393 Test Plan: Ran `make check` and the crash test script with timestamps enabled. Reviewed By: jay-zhuang Differential Revision: D29071635 Pulled By: ltamasi fbshipit-source-id: f6c72442122b4e581871e096fabe3876a9e8a5a6 |
||
---|---|---|
.. | ||
clipping_iterator_test.cc | ||
clipping_iterator.h | ||
compaction_iteration_stats.h | ||
compaction_iterator_test.cc | ||
compaction_iterator.cc | ||
compaction_iterator.h | ||
compaction_job_stats_test.cc | ||
compaction_job_test.cc | ||
compaction_job.cc | ||
compaction_job.h | ||
compaction_picker_fifo.cc | ||
compaction_picker_fifo.h | ||
compaction_picker_level.cc | ||
compaction_picker_level.h | ||
compaction_picker_test.cc | ||
compaction_picker_universal.cc | ||
compaction_picker_universal.h | ||
compaction_picker.cc | ||
compaction_picker.h | ||
compaction_service_test.cc | ||
compaction.cc | ||
compaction.h | ||
sst_partitioner.cc |