Yanqin Jin
82b3888433
Enable backward iterator for keys with user-defined timestamp (#8035)
Summary:
This PR does the following:
- Enable backward iteration for keys with user-defined timestamp. Note that merge, single delete, range delete are not supported yet.
- Introduces a new helper API `Comparator::EqualWithoutTimestamp()`.
- Fix a typo in `SetTimestamp()`.
- Add/update unit tests
Run db_bench (built with DEBUG_LEVEL=0) to demonstrate that no overhead is introduced for CPU-intensive workloads with a lot of `Prev()`. Also provided results of iterating keys with timestamps.
1. Disable timestamp, run:
```
./db_bench -db=/dev/shm/rocksdb -disable_wal=1 -benchmarks=fillseq,seekrandom[-W1-X6] -reverse_iterator=1 -seek_nexts=5
```
Results:
> Baseline
> - seekrandom [AVG 6 runs] : 96115 ops/sec; 53.2 MB/sec
> - seekrandom [MEDIAN 6 runs] : 98075 ops/sec; 54.2 MB/sec
>
> This PR
> - seekrandom [AVG 6 runs] : 95521 ops/sec; 52.8 MB/sec
> - seekrandom [MEDIAN 6 runs] : 96338 ops/sec; 53.3 MB/sec
2. Enable timestamp, run:
```
./db_bench -user_timestamp_size=8 -db=/dev/shm/rocksdb -disable_wal=1 -benchmarks=fillseq,seekrandom[-W1-X6] -reverse_iterator=1 -seek_nexts=5
```
Result:
> Baseline: not supported
>
> This PR
> - seekrandom [AVG 6 runs] : 90514 ops/sec; 50.1 MB/sec
> - seekrandom [MEDIAN 6 runs] : 90834 ops/sec; 50.2 MB/sec
Pull Request resolved: https://github.com/facebook/rocksdb/pull/8035
Reviewed By: ltamasi
Differential Revision: D26926668
Pulled By: riversand963
fbshipit-source-id: 95330cc2242397c03e09d29e5417dfb0adc98ef5
2021-03-10 11:15:46 -08:00
..
2021-03-04 00:43:48 -08:00
2021-01-29 12:41:25 -08:00
2021-03-10 11:15:46 -08:00
2021-01-25 22:09:11 -08:00
2021-01-06 14:15:02 -08:00
2021-01-28 22:10:32 -08:00
2021-03-04 00:43:48 -08:00
2021-01-25 22:09:11 -08:00
2020-07-22 18:32:52 -07:00
2020-07-22 18:32:52 -07:00
2020-07-22 18:32:52 -07:00
2020-07-22 18:32:52 -07:00
2020-12-22 23:45:58 -08:00
2020-10-06 13:52:42 -07:00
2020-07-22 18:32:52 -07:00
2020-11-11 20:32:28 -08:00
2020-07-22 18:32:52 -07:00
2020-11-02 19:21:11 -08:00
2020-07-24 13:44:49 -07:00
2020-07-24 13:44:49 -07:00