431e8afba7
Summary: In the original stacked BlobDB implementation, which writes blobs to blob files immediately and treats blob files as logs, it makes sense to flush the file after writing each blob to protect against process crashes; however, in the integrated implementation, which builds blob files in the background jobs, this unnecessarily reduces performance. This patch fixes this by simply adding a `do_flush` flag to `BlobLogWriter`, which is set to `true` by the stacked implementation and to `false` by the new code. Note: the change itself is trivial but the tests needed some work; since in the new implementation, blobs are now buffered, adding a blob to `BlobFileBuilder` is no longer guaranteed to result in an actual I/O. Therefore, we can no longer rely on `FaultInjectionTestEnv` when testing failure cases; instead, we manipulate the return values of I/O methods directly using `SyncPoint`s. Pull Request resolved: https://github.com/facebook/rocksdb/pull/7892 Test Plan: `make check` Reviewed By: jay-zhuang Differential Revision: D26022814 Pulled By: ltamasi fbshipit-source-id: b3dce419f312137fa70d84cdd9b908fd5d60d8cd |
||
---|---|---|
.. | ||
blob_compaction_filter.cc | ||
blob_compaction_filter.h | ||
blob_db_gc_stats.h | ||
blob_db_impl_filesnapshot.cc | ||
blob_db_impl.cc | ||
blob_db_impl.h | ||
blob_db_iterator.h | ||
blob_db_listener.h | ||
blob_db_test.cc | ||
blob_db.cc | ||
blob_db.h | ||
blob_dump_tool.cc | ||
blob_dump_tool.h | ||
blob_file.cc | ||
blob_file.h |