61932cdf1d
Summary: The patch adds iterator support to the integrated BlobDB implementation. Whenever a blob reference is encountered during iteration, the corresponding blob is retrieved by calling `Version::GetBlob`, assuming the `expose_blob_index` (formerly `allow_blob`) flag is *not* set. (Note: the flag is set by the old stacked BlobDB implementation, which has its own blob file handling/blob retrieval logic.) In addition, `DBIter` now uniformly returns `Status::NotSupported` with the error message `"BlobDB does not support merge operator."` when encountering a blob reference while performing a merge (instead of potentially returning a message that implies the database should be opened using the stacked BlobDB's `Open`.) TODO: We can implement support for lazily retrieving the blob value (or in other words, bypassing the retrieval of blob values based on key) by extending the `Iterator` API with a new `PrepareValue` method (similarly to `InternalIterator`, which already supports lazy values). Pull Request resolved: https://github.com/facebook/rocksdb/pull/7731 Test Plan: `make check` Reviewed By: riversand963 Differential Revision: D25256293 Pulled By: ltamasi fbshipit-source-id: c39cd782011495a526cdff99c16f5fca400c4811 |
||
---|---|---|
.. | ||
blob_constants.h | ||
blob_file_addition_test.cc | ||
blob_file_addition.cc | ||
blob_file_addition.h | ||
blob_file_builder_test.cc | ||
blob_file_builder.cc | ||
blob_file_builder.h | ||
blob_file_cache_test.cc | ||
blob_file_cache.cc | ||
blob_file_cache.h | ||
blob_file_garbage_test.cc | ||
blob_file_garbage.cc | ||
blob_file_garbage.h | ||
blob_file_meta.cc | ||
blob_file_meta.h | ||
blob_file_reader_test.cc | ||
blob_file_reader.cc | ||
blob_file_reader.h | ||
blob_index.h | ||
blob_log_format.cc | ||
blob_log_format.h | ||
blob_log_sequential_reader.cc | ||
blob_log_sequential_reader.h | ||
blob_log_writer.cc | ||
blob_log_writer.h | ||
db_blob_basic_test.cc | ||
db_blob_index_test.cc |