rocksdb/db/compaction
Yanqin Jin 7d26e4c5a3 Basic Support for Merge with user-defined timestamp (#10819)
Summary:
This PR implements the originally disabled `Merge()` APIs when user-defined timestamp is enabled.

Simplest usage:
```cpp
// assume string append merge op is used with '.' as delimiter.
// ts1 < ts2
db->Put(WriteOptions(), "key", ts1, "v0");
db->Merge(WriteOptions(), "key", ts2, "1");
ReadOptions ro;
ro.timestamp = &ts2;
db->Get(ro, "key", &value);
ASSERT_EQ("v0.1", value);
```

Some code comments are added for clarity.

Note: support for timestamp in `DB::GetMergeOperands()` will be done in a follow-up PR.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10819

Test Plan: make check

Reviewed By: ltamasi

Differential Revision: D40603195

Pulled By: riversand963

fbshipit-source-id: f96d6f183258f3392d80377025529f7660503013
2022-10-31 22:28:58 -07:00
..
clipping_iterator.h Make InternalKeyComparator not configurable (#10342) 2022-07-14 10:09:31 -07:00
clipping_iterator_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
compaction.cc Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
compaction.h Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
compaction_iteration_stats.h Support readahead during compaction for blob files (#9187) 2021-11-19 17:53:47 -08:00
compaction_iterator.cc Basic Support for Merge with user-defined timestamp (#10819) 2022-10-31 22:28:58 -07:00
compaction_iterator.h Add option `preserve_internal_time_seconds` to preserve the time info (#10747) 2022-10-07 18:49:40 -07:00
compaction_iterator_test.cc Basic Support for Merge with user-defined timestamp (#10819) 2022-10-31 22:28:58 -07:00
compaction_job.cc clang-format for db/compaction (#10882) 2022-10-26 12:35:12 -07:00
compaction_job.h clang-format for db/compaction (#10882) 2022-10-26 12:35:12 -07:00
compaction_job_stats_test.cc clang-format for db/compaction (#10882) 2022-10-26 12:35:12 -07:00
compaction_job_test.cc clang-format for db/compaction (#10882) 2022-10-26 12:35:12 -07:00
compaction_outputs.cc Use `sstableKeyCompare()` for compaction output boundary check (#10763) 2022-10-06 15:54:58 -07:00
compaction_outputs.h Use `sstableKeyCompare()` for compaction output boundary check (#10763) 2022-10-06 15:54:58 -07:00
compaction_picker.cc Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker.h Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_fifo.cc Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_fifo.h Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_level.cc Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_level.h Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_test.cc Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_picker_universal.cc clang-format for db/compaction (#10882) 2022-10-26 12:35:12 -07:00
compaction_picker_universal.h Fix FIFO causing overlapping seqnos in L0 files due to overlapped seqnos between ingested files and memtable's (#10777) 2022-10-25 10:39:58 -07:00
compaction_service_job.cc Improve SubCompaction Partitioning (#10393) 2022-07-23 17:38:49 -07:00
compaction_service_test.cc Deflake CompactionServiceTest.BasicCompactions (#10697) 2022-09-19 14:10:05 -07:00
compaction_state.cc Tiered Compaction: per key placement support (#9964) 2022-07-13 20:54:49 -07:00
compaction_state.h Tiered Compaction: per key placement support (#9964) 2022-07-13 20:54:49 -07:00
file_pri.h Try to start TTL earlier with kMinOverlappingRatio is used (#8749) 2021-11-01 14:36:31 -07:00
sst_partitioner.cc Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future (#9362) 2022-01-11 06:33:48 -08:00
subcompaction_state.cc Refactor Compaction file cut `ShouldStopBefore()` (#10629) 2022-09-14 22:09:12 -07:00
subcompaction_state.h Refactor Compaction file cut `ShouldStopBefore()` (#10629) 2022-09-14 22:09:12 -07:00
tiered_compaction_test.cc Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00