
LMCache、WeKnora 与 SGLang 的三条工程更新,分别把 KV 配额、RAG 失败降级和共享 cache 生命周期变成可复现的状态边界。
6bcb00e 标题为「Route quota accounting through the cache-event stream」,作者和提交者时间均为 2026-08-04 19:16:53Z,即北京时间 8 月 5 日 03:16:53。1POST /quota/events,而是向 POST /directory/events 发送 fleet cache-event。Key directory 先应用这条事件流,再把已应用的事件广播给 usage view 和 eviction LRU;resync_manager 的启动回填也从只恢复 usage/LRU,改为先回填 L2 placement,再恢复这些消费者。2cache_salt 的字节总量和淘汰顺序,比让两个消费者各自解释 store/delete 事件更容易发现分叉。git clone https://github.com/LMCache/LMCache.git
cd LMCache
git checkout 6bcb00eb197f8bf397092b33358392c19c50ba4c
pytest -q \
tests/v1/mp_coordinator/test_cache_events.py \
tests/v1/mp_coordinator/test_key_directory.py \
tests/v1/mp_coordinator/test_usage_manager.py \
tests/v1/mp_coordinator/test_eviction_manager.py \
tests/v1/mp_coordinator/test_resync_manager.pyseq 是否幂等,出现 seq gap 后实例切片是否标为 stale,以及 replay/backfill 后目录、usage 和 LRU 是否重新对齐。提交的设计还区分了重启时的 L1 与 L2:前者的旧 placement 会被 incarnation fencing 清掉,后者因字节仍在磁盘上而保留。2seq,不要求全局顺序;出现 gap 时先把切片标为过期,依赖保留的事件流 replay,相关 durable replay wiring 仍是后续工作。25723e83 于 2026-08-04 13:12:51Z 提交,即北京时间 8 月 4 日 21:12:51;作者时间为 13:06:39Z。提交标题为「cover web partial success and wiki-only embed fallback」。3targetReportsEmbedFailure,先按知识库能力判断 embedding 错误是否应当被记录为 retrieval error。kb 元数据缺失时仍允许尝试降级 keyword search;带 Wiki/graph 能力、但没有可用向量或 keyword index 的目标,则继续交给 HybridSearch,让空召回落到明确的 ErrSearchNothing,而不是提前变成笼统的 hard search_failed。4HybridSearch 仍会被调用,最终才返回 ErrSearchNothing。这不是把空结果包装成成功,而是保留了「读取路径还能否继续」和「最后有没有命中」之间的边界。4git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
git checkout 5723e837f89f5f3cfa0891defee37908d6adb79a
go test ./internal/application/service/chat_pipeline \
-run 'TestSearchKeepsWebResultsWhenKnowledgeBaseFails|TestSearchEmbeddingFailureOnWikiOnlyTargetReportsNoResults'next 是否被调用、web URL 是否仍在 SearchResult;第二组场景中 HybridSearch 是否被调用、最终错误是否确实是 ErrSearchNothing。这四个观察量对应了持久知识读取、外部 web 读取、降级分支和最终状态。HybridSearch 被调用,也不能把空召回解释成找到了记忆。211ee64 于 2026-08-05 00:24:42Z 提交,即北京时间 8 月 5 日 08:24:42,标题为「Rebuild the shared RoPE cache entry when its buffers are dead」。5_ROPE_DICT 共享 RotaryEmbedding。模型 teardown 可能把共享对象的 buffer 置到 meta,或者把 storage 的大小释放为 0;如果字典仍返回这个 Python 对象,后续 in-place RoPE 操作可能把无效的 cos/sin cache 传给 Meta backend,静默地不做旋转。新 helper 在返回 entry 前检查当前是否处于有意的 meta 构造路径,并在真实设备上发现 meta buffer 或 0-byte storage 时删除旧 entry、重新构建。5meta 不能一律重建。新增测试保留了 intentional meta build 的共享行为,同时覆盖 rope.to(device="meta")、storage release 后的重建,以及正常 live entry 仍然复用。重建后的测试还比较了 cos/sin cache 内容,避免只凭对象地址变化判断修复成立。5git clone https://github.com/sgl-project/sglang.git
cd sglang
git checkout 211ee64249067a39e2a7b579686ec067084aa820
python -m pytest -q test/registered/rotary/test_rope_cache_invalidation.py| 更新 | 被重新定义的状态 | 先测什么 | 不能外推 |
|---|---|---|---|
| LMCache quota event stream 2 | Key directory 是事实源,usage 和 eviction 是派生消费者 | seq 去重、gap 标 stale、replay/backfill 后三者对齐 | 没有端到端 KV 性能数字 |
| WeKnora wiki-only fallback 4 | embedding error、可继续读取、空召回和 hard failure 分开 | web partial success 与 wiki-only embedding failure 两组单测 | 没有真实 provider 的召回率或延迟 |
| SGLang shared RoPE rebuild 5 | 对象存在与 buffer 可用分开,meta 构造与 dead entry 分开 | live sharing、meta invalidation、storage release 三组测试 | 没有 GPU serving 性能数字 |
ErrSearchNothing 是否按预期分流;共享 RoPE 重建后 cache 内容是否仍一致。性能问题要等这些状态边界稳定后,再在明确的模型、硬件、运行时和基线上测。api.github.com
github.com
api.github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.