已关闭
[Feature-Request|需求反馈]: memcache KvEvent 适配:缓存感知调度全链路 #508
jason lyu创建于  16 天前关闭于  13 天前
jason lyu
jason lyu成员
16 天前 创建

背景

Agentic AI 多轮对话场景下,请求间共享大量相同前缀(System Prompt、历史消息),跨请求随机调度导致 KV Cache 无法命中、每轮重复 Prefill。为最大化 KV 复用,基于 MemCache 池化存储 + kv-conductor 缓存感知调度(两阶段匹配:引擎 offload 事件 × memcache 池 stored 事件),使能 prefill 节点亲和路由。

MemCache 侧已提供 KvEvent 广播能力(memcache PR #334/#363:MetaService 在元数据写入/删除后通过 ZMQ PUB 广播 STORED/REMOVED/CLEARED 事件)。

需求描述

Motor 侧适配 memcache KvEvent 全链路:

  1. 部署配置

    • memcache_meta_service.py:kv_events 配置块(enable/endpoint/model_name/block_size),解除注释即开启
    • mmc-local-*.confock.mmc.local_service.backend_id 默认配置,deployer 部署时替换为 Pod IP(common.sh),kv-conductor 据此区分 KV 块所属节点
    • K8s Service 模板暴露 kv-events: 5557 端口
  2. kv-conductor 事件链路

    • 支持 memcache KvEvent 批量格式({"events": [...]},fixmap 首字节快速分流,跳过无谓的 vLLM/Mooncake 试解析)
    • IpOnly 匹配:backend_id(Pod IP)→ hbm_ip_index → 节点所有 DP
    • 两阶段匹配:pool stored 先到进 pending_pool 排队,engine offload 后到补匹配入树(双向,含 TTL 清理)
    • FlexHash 支持 vLLM 默认 32 字节 sha256 块哈希(取低 64 位,与 vLLM int 模式、memcache BlockHashHexToU64 对齐)
  3. Coordinator

    • kv_conductor_config.pool_endpoint 支持 tcp://*:5557 通配符(部署时解析为 KVS_MASTER_SERVICE)
    • store_backend 大小写不敏感(memcache/Memcache 均可)
  4. vLLM 依赖补丁

    • MultiConnector 顶层配置下引擎 offload 事件被静默丢弃(vLLM 上游 MultiConnector.get_kv_connector_kv_cache_events 未实现,仅 TODO)
    • 提供 v0.20.2 ~ v0.26.0 各版本补丁(examples/deployer/patch/),已建议上游合入
  5. 可维测性

    • 事件日志统一为 kv_event <state> 状态机(received/parsed/queued/offload_cached/matched/confirmed/applied/dropped),matched/confirmed 为 INFO 级
    • medium 统一小写(xpu/cpu/disk),可按介质 grep 过滤
    • query 日志输出 per-medium 命中块数(npu_blocks/cpu_blocks/disk_blocks)

测试结果

  • kv_conductor cargo test:123 + 20 全部通过
  • deployer / coordinator 单测全部通过
  • 实机验证:memcache 双节点 stored 事件解析并排队(backend_id=Pod IP 路由正确)、引擎事件解析成功、两阶段匹配入树、/query 命中
likedislike
jason lyujason lyu成员
16 天前 关联了pull request:[feature] memcache KvEvent 适配:缓存感知调度全链路
wangyang
wangyang成员
15 天前 评论:

👋 您好,感谢向 mindie-motor 提交 Issue!
🎉 我们已收到您的反馈,感谢你对开源社区的支持!

📅 处理时效 维护团队将在工作日 24 小时内查看并回复您的问题。
🔍 自助排查(推荐优先查看) 在等待回复期间,您可以先查阅仓库README以及历史 Issue 中相似问题的解决方案,多数问题可快速解决。
💡 为了更快定位问题,请您确保 Issue 包含:

清晰的问题描述
可复现的操作步骤
相关日志、截图或环境信息
我们会尽快跟进,感谢您的理解与配合!

likedislike
tobkingtobking成员
13 天前 关闭了 issue
ascend-robotascend-robot成员
13 天前 添加了label:resolved