dfkv v2.26.1
What's Changed
Client-only patch release. No C++ binary changes since v2.26.0 (libdfkv.so, server and MDS are byte-identical in behavior; only the vLLM connector and documentation changed).
- vLLM stable hybrid/cache restoration and preemption lifecycles (#375,
8732eca)vllm-multiwr-v4identity binds full effective cache-spec geometry (incl. wrapped/DCP-adjusted specs); earlier Python layouts cold-miss, no legacy reads or aliases. Clean cutover: expect one cold external cache on rollout.- SAVE masks separated from LOAD requirements; volatile speculative tail excluded; required objects re-validated at each shortened lookup boundary; unallocated LOAD destinations and incomplete source chunks fail closed.
- Windowed/recurrent SAVE sources drained before the next model step can recycle them; async GET completion fenced on the owning CUDA device.
- Same-step preemption/resumption keeps fresh allocations and LOAD plans; MRV1 resumes restore from the complete allocated block table; SAVE completions held until GPU blocks can be released; per-generation SAVE invalidation prevents stale queued/cancelled writes from reviving under a reused request id.
- Validation: 113 CPU regressions; real-model gates on 8×B200 incl. 1.002M-token PUT/GET 27/27, 1,344 natural preemptions with 128/128 valid outputs, forced block-release after 3× drain/reset/resume, cross-restart text (389 MB real GET) and multimodal L3 reads, and a full dual-instance qualification (6,144 long-input + 9,216 short-input requests, zero illegal memory accesses).
- chore: bump version to 2.26.1 (#376)
Compatibility: v4 is a clean object-layout cutover; old objects cold-miss by identity (no dual read, no aliases). Native C ABI and server wire protocol unchanged — server/MDS stay on v2.26.0 binaries without loss.
Full Changelog: v2.26.0...v2.26.1