Revision 230bcae7b61c03ded4fd65e9d157c66348440c95 authored by Sergei Petrunia on 05 November 2019, 19:29:31 UTC, committed by Facebook Github Bot on 05 November 2019, 19:39:36 UTC
Summary:
For MDEV-19670: MyRocks: key lookups into deleted data are very slow

BaseDeltaIterator remembers iterate_upper_bound and will not let delta_iterator_
walk above the iterate_upper_bound if base_iterator_ is not valid
anymore.

== Rationale ==
The most straightforward way would be to make the delta_iterator
(which is a rocksdb::WBWIIterator) to support iterator bounds. But
checking for bounds has an extra CPU overhead.

So we put the check into BaseDeltaIterator, and only make it when
base_iterator_ is not valid.

(note: We could take it even further, and move the check a few lines
down, and only check iterator bounds ourselves if base_iterator_ is
not valid AND delta_iterator_ hit a tombstone).
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5403

Differential Revision: D15863092

Pulled By: maysamyabandeh

fbshipit-source-id: 8da458e7b9af95ff49356666f69664b4a6ccf49b
1 parent 52733b4
History
File Mode Size
env.cc -rw-r--r-- 13.5 KB
env_basic_test.cc -rw-r--r-- 12.6 KB
env_chroot.cc -rw-r--r-- 11.6 KB
env_chroot.h -rw-r--r-- 684 bytes
env_encryption.cc -rw-r--r-- 33.9 KB
env_hdfs.cc -rw-r--r-- 19.2 KB
env_posix.cc -rw-r--r-- 37.4 KB
env_test.cc -rw-r--r-- 57.4 KB
io_posix.cc -rw-r--r-- 33.0 KB
io_posix.h -rw-r--r-- 8.7 KB
mock_env.cc -rw-r--r-- 20.7 KB
mock_env.h -rw-r--r-- 4.2 KB
mock_env_test.cc -rw-r--r-- 2.7 KB

back to top