Revision 815f54afad1362e8503c184f9830316f7fcef73b authored by Andrew Kryczka on 05 November 2016, 16:10:51 UTC, committed by Facebook Github Bot on 05 November 2016, 16:24:26 UTC
Summary: This handles two issues: (1) range deletion iterator sometimes outlives the table reader that created it, in which case the block must not be destroyed during table reader destruction; and (2) we prefer to read these range tombstone meta-blocks from file fewer times. - Extracted cache-populating logic from NewDataBlockIterator() into a separate function: MaybeLoadDataBlockToCache() - Use MaybeLoadDataBlockToCache() to load range deletion meta-block and pin it through the reader's lifetime. This code reuse works since range deletion meta-block has same format as data blocks. - Use NewDataBlockIterator() to create range deletion iterators, which uses block cache if enabled, otherwise reads the block from file. Either way, the underlying block won't disappear until after the iterator is destroyed. Closes https://github.com/facebook/rocksdb/pull/1459 Differential Revision: D4123175 Pulled By: ajkr fbshipit-source-id: 8f64281
1 parent 9e7cf34
File | Mode | Size |
---|---|---|
arcanist_util | ||
build_tools | ||
cmake | ||
coverage | ||
db | ||
docs | ||
examples | ||
hdfs | ||
include | ||
java | ||
memtable | ||
port | ||
table | ||
third-party | ||
tools | ||
util | ||
utilities | ||
.arcconfig | -rw-r--r-- | 566 bytes |
.clang-format | -rw-r--r-- | 138 bytes |
.gitignore | -rw-r--r-- | 687 bytes |
.travis.yml | -rw-r--r-- | 1.5 KB |
AUTHORS | -rw-r--r-- | 247 bytes |
CMakeLists.txt | -rw-r--r-- | 23.3 KB |
CONTRIBUTING.md | -rw-r--r-- | 733 bytes |
DEFAULT_OPTIONS_HISTORY.md | -rw-r--r-- | 1.1 KB |
DUMP_FORMAT.md | -rw-r--r-- | 763 bytes |
HISTORY.md | -rw-r--r-- | 37.1 KB |
INSTALL.md | -rw-r--r-- | 3.9 KB |
LANGUAGE-BINDINGS.md | -rw-r--r-- | 646 bytes |
LICENSE | -rw-r--r-- | 1.6 KB |
Makefile | -rw-r--r-- | 48.7 KB |
PATENTS | -rw-r--r-- | 1.9 KB |
README.md | -rw-r--r-- | 1.4 KB |
ROCKSDB_LITE.md | -rw-r--r-- | 1.0 KB |
USERS.md | -rw-r--r-- | 4.5 KB |
Vagrantfile | -rw-r--r-- | 877 bytes |
WINDOWS_PORT.md | -rw-r--r-- | 12.5 KB |
appveyor.yml | -rw-r--r-- | 555 bytes |
src.mk | -rw-r--r-- | 23.6 KB |
thirdparty.inc | -rw-r--r-- | 7.8 KB |
Computing file changes ...