b0e7834100
Summary: The patch adds support for writing blob files during flush by integrating `BlobFileBuilder` with the flush logic, most importantly, `BuildTable` and `CompactionIterator`. If `enable_blob_files` is set, large values are extracted to blob files and replaced with references. The resulting blob files are then logged to the MANIFEST as part of the flush job's `VersionEdit` and added to the `Version`, similarly to table files. Errors related to writing blob files fail the flush, and any blob files written by such jobs are immediately deleted (again, similarly to how SST files are handled). In addition, the patch extends the logging and statistics around flushes to account for the presence of blob files (e.g. `InternalStats::CompactionStats::bytes_written`, which is used for calculating write amplification, now considers the blob files as well). Pull Request resolved: https://github.com/facebook/rocksdb/pull/7345 Test Plan: Tested using `make check` and `db_bench`. Reviewed By: riversand963 Differential Revision: D23506369 Pulled By: ltamasi fbshipit-source-id: 646885f22dfbe063f650d38a1fedc132f499a159 |
||
---|---|---|
.. | ||
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_garbage_test.cc | ||
blob_file_garbage.cc | ||
blob_file_garbage.h | ||
blob_file_meta.cc | ||
blob_file_meta.h | ||
blob_index.h | ||
blob_log_format.cc | ||
blob_log_format.h | ||
blob_log_reader.cc | ||
blob_log_reader.h | ||
blob_log_writer.cc | ||
blob_log_writer.h | ||
db_blob_index_test.cc |