目标
异构 KV(full attn / MLA / SWA / linear state)统一为「组 + checkpoint」模型,把 qwen3 / glm52 各自手写的 offload 编排(qwen3 executor ~2000 行 prefetch 状态机、glm52 scheduler/offload.rs 1654 行)收编进一个共享层 openinfer-kv-store。北极星:新模型 release 当天,给 agent 一页 KV 契约文档,它能独立完成 prefix cache + offloading + P/D 接入。
设计文档:docs/subsystems/kv-cache/design.md(两类封存语义、对齐组、单索引 trade-off、KvModel trait、resolve/seal/retire 三动词、线性所有权链、取消契约、admission 水位、SaveClass QoS)。
迁移计划(绞杀式,每步合 main、bench 全绿、删旧码)
未决(设计修订追加到本 issue body)
目标
异构 KV(full attn / MLA / SWA / linear state)统一为「组 + checkpoint」模型,把 qwen3 / glm52 各自手写的 offload 编排(qwen3 executor ~2000 行 prefetch 状态机、glm52
scheduler/offload.rs1654 行)收编进一个共享层openinfer-kv-store。北极星:新模型 release 当天,给 agent 一页 KV 契约文档,它能独立完成 prefix cache + offloading + P/D 接入。设计文档:
docs/subsystems/kv-cache/design.md(两类封存语义、对齐组、单索引 trade-off、KvModeltrait、resolve/seal/retire三动词、线性所有权链、取消契约、admission 水位、SaveClass QoS)。迁移计划(绞杀式,每步合 main、bench 全绿、删旧码)
openinfer-kv-store(resolve_prefix/seal/retire,paged only,HostTier防腐层 +MockTierCPU 契约测试 11 项)+ 分发层(GenerateRequest, KvPrefix)(未迁移模型收KvPrefix::none(),行为零变化)resolve_prefix前置到分发层 tokio task,替换remote_fetch_action状态机与PrefetchState相位机,旧路径留开关至 bench 对齐(docs/conventions回归标准)HostRestoreState::poll_front队头停车(push_front + break 堵整 rank FIFO 的结构性修复)SaveClass::Handoff租约语义对齐 pegaflowQueryLeaseId(超时回收、释放时机:D fetch 完成 vs admission 断言通过)core::kv_pool→BlockPool迁移(独立,可并行);Bounded 组 slab + seal-by-copy 首发(唯一新物理能力);gemma4 照抄KvModeltrait 定稿(spec/arenas/repack,随 qwen3 首迁)未决(设计修订追加到本 issue body)
Handoff租约的超时回收与释放时机 —— 防腐层里对 pegaflow lease 语义定miss-breaker(连续冷 miss 停止 park)是跨请求策略,qwen3 迁移时决定放 store 还是 scheduler
admission 水位下推进池锁内(彻底闭合 TOCTOU)是 hardening 项,骨架先用 store 侧原子
pegaflow fork 与否:
HostTier防腐层稳定运行后再议;QueryOutcome::Loading的轮询套轮询是第一改造对象APoSD 审查(PR feat(kv-store): openinfer-kv-store skeleton — resolve/seal/retire + KvPrefix dispatch (#824) #825 内部审查,已修 6/9)遗留两项:
match_and_add_prefix按值消费KvPrefix(hold 活到 match 之后成为类型不变量,而非注释约定)—— @ qwen3 首迁cacheable_pin_percent默认 25% 是唯一无出处的旋钮 —— @ qwen3 迁移后用 multi-turn bench 校准resolve 的池压力语义已定为等待(deadline 兜底)而非即刻降级:装不下前缀的池同样过不了 admission,等待买廉价 prefill,降级买全量重算
glm52 全量迁移 PR feat(glm52): full migration to openinfer-kv-store — resolver pipeline, keyed tail verbs, 1P1D e2e verified (#824) #830(2026-08-02):1P1D+router e2e、GSM8K 0.99、multi-turn c16 头对头 757-769 tok/s / TTFT 258ms vs 老栈 564 / 751ms。