Repository navigation
V1 A: CPU cache contract; hot tier does not use erasure coding - #2
Merged
Merged
Conversation
Introduce core-types, protocol, and MemoryStore with a versioned identity, length-delimited keys, and a fenced block lifecycle. Tests cover hits, quotas, timeout, and cancel on x86_64 and aarch64 qemu-user. Real vLLM and DPU paths stay out of the tree. Co-authored-by: RustFS <hello@rustfs.com>
A lost or failed G3.5 block is a clean miss, then recompute and repopulate. Cold durability stays with RustFS G4. No parity and no durability replicas. Co-authored-by: RustFS <hello@rustfs.com>
loverustfs
marked this pull request as ready for review
October 15, 2026 02:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
V1 milestone A of the G3.5 shared KV tier. RustFS remains the colder G4 backend and is not on this path. Nothing here claims DPU, RDMA, or CUDA acceleration.
GPUCache does not do erasure coding and does not keep durability replicas. A lost or failed hot block is a clean miss: the engine recomputes and may repopulate the cache. Durability for cold data is RustFS G4's job. An extra copy of a hot shared prefix may be considered later as a latency hint; that is not erasure coding, not a durability promise, and not in this tree. Recorded in docs/adr/0002-no-erasure-coding.md. The README roadmap no longer lists an EC milestone. DOCA EC and SPDK RAID are not GPUCache components.
gpucache-core-types,gpucache-protocol, andgpucache-storage(MemoryStore). No GPU or DPU dependencies;unsafeis forbidden.CacheIdentity, length-delimited physical and logical keys, and the lifecycleABSENT -> RESERVED -> WRITING -> COMMITTED -> EVICTING -> ABSENT, with quarantine when a registered region's completion is unknown.request_id, epoch, deadline, and where relevant generation, length, and checksum. Only a committed, compatible block is a hit. Quotas bound object size, in-flight work, registrations, and retained bytes.kv-block-xfer).The native vLLM KV connector vs LMCache choice is not made. A real engine export/import needs a GPU and is
NOT_RUN_HARDWARE.Test matrix
cargo test --workspace --all-targetson x86_64 (Rust 1.99.0, MSRV 1.85)aarch64-unknown-linux-gnuunder qemu-usercargo clippy --workspace --all-targets -- -D warningscargo fmt --all -- --checkubuntu-24.04-armjobOne-command repro:
cargo test --workspace --all-targetsNot in this PR
V1 B (TCP, file/NVMe, RustFS smoke), V1 C fault matrix and paired baselines, V2 RDMA, V3 DPU. No erasure coding, no durability replicas, no website change, and no release.