From 28586be8ec7964ac0cde6f95b5e63691d6e21715 Mon Sep 17 00:00:00 2001 From: Gang Liao Date: Fri, 8 Jul 2022 18:35:52 -0700 Subject: [PATCH] Update HISTORY.md for blob cache (#10328) Summary: Update HISTORY.md for blob cache. Implementation can be found from Github issue https://github.com/facebook/rocksdb/issues/10156 (or Github PRs https://github.com/facebook/rocksdb/issues/10155, https://github.com/facebook/rocksdb/issues/10178, https://github.com/facebook/rocksdb/issues/10225, https://github.com/facebook/rocksdb/issues/10198, and https://github.com/facebook/rocksdb/issues/10272). Pull Request resolved: https://github.com/facebook/rocksdb/pull/10328 Reviewed By: riversand963 Differential Revision: D37732514 Pulled By: gangliao fbshipit-source-id: 4c942a41c07914bfc8db56a0d3cf4d3e53d5963f --- HISTORY.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index e5a2e32bc..d69c195b7 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -4,6 +4,10 @@ * Mempurge option flag `experimental_mempurge_threshold` is now a ColumnFamilyOptions and can now be dynamically configured using `SetOptions()`. * Support backward iteration when `ReadOptions::iter_start_ts` is set. * Provide support for ReadOptions.async_io with direct_io to improve Seek latency by using async IO to parallelize child iterator seek and doing asynchronous prefetching on sequential scans. +* Added support for blob caching in order to cache frequently used blobs for BlobDB. + * User can configure the new ColumnFamilyOptions `blob_cache` to enable/disable blob caching. + * Either sharing the backend cache with the block cache or using a completely separate cache is supported. + * A new abstraction interface called `BlobSource` for blob read logic gives all users access to blobs, whether they are in the blob cache, secondary cache, or (remote) storage. Blobs can be potentially read both while handling user reads (`Get`, `MultiGet`, or iterator) and during compaction (while dealing with compaction filters, Merges, or garbage collection) but eventually all blob reads go through `Version::GetBlob` or, for MultiGet, `Version::MultiGetBlob` (and then get dispatched to the interface -- `BlobSource`). ### Public API changes * Add metadata related structs and functions in C API, including