Skip to content

[kv] Use HyperClockCache for the shared RocksDB block cache - #4611

Merged
platinumhamburg merged 1 commit into
apache:mainfrom
platinumhamburg:shared-block-cache-hcc
Oct 12, 2026
Merged

platinumhamburg merged 1 commit into
apache:mainfrom
platinumhamburg:shared-block-cache-hcc

Conversation

@platinumhamburg

Copy link
Copy Markdown
Contributor

Purpose

Closes #4610.

When shared block caching is enabled, all KV tablets in a TabletServer currently use one LRU cache. Use RocksDB's HyperClockCache to reduce cache-metadata contention under concurrent access.

Brief change log

  • Create the shared block cache with automatic entry-charge estimation, default sharding, and a non-strict capacity limit.
  • Exercise HCC in the existing two-database shared-cache test, including reads after one database closes.
  • Preserve existing capacity configuration, metrics, and ownership. Independent block caches and WriteBufferManager accounting remain LRU; no new configuration option is introduced.

Tests

  • ./mvnw verify -pl fluss-server -am -Dtest=KvManagerTest,RocksDBResourceContainerTest -Dsurefire.failIfNoSpecifiedTests=false -DfailIfNoTests=false (Java 11).
  • Workload-level performance comparisons have not been run; no throughput or latency improvement is claimed.

API and Format

No public API or storage-format changes.

Documentation

No new configuration or user-facing API.

@platinumhamburg
platinumhamburg marked this pull request as ready for review October 12, 2026 09:44
@platinumhamburg
platinumhamburg merged commit 5f1466f into apache:main Oct 12, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[kv] Use HyperClockCache for the shared RocksDB block cache

2 participants