Skip to content

Commit 6e3d187

Browse files
authored
[kvcm_ops] support instance_group revisit_interval_buckets (#303)
1 parent 0578853 commit 6e3d187

12 files changed

Lines changed: 300 additions & 2 deletions

File tree

docs/develop/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ grep -E "DoPut|DoGet|Alloc failed|Init|SdkWrapper" kv_cache_manager_client.log
168168

169169
githooks中已经添加了C++等语言的格式化脚本,请确保开发环境安装了clang-format、autopep8、buildifier。(开发镜像均已预装)。
170170

171+
## Proto 修改
172+
173+
修改 `kv_cache_manager/protocol/protobuf` 下的 proto 定义时,请遵循 [Proto 文件修改指南](proto_modification_guide.md),并同步完成其中列出的适配步骤(例如修改 AdminService 接口定义时需适配 `package/kvcm_ops` 运维 CLI)。
174+
171175
## 提交要求
172176

173177
提交前检查和 commit message 格式见 [Commit 要求](commit_requirements.md)

docs/develop/proto_modification_guide.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,12 @@ bazel test //kv_cache_manager/xxxx:xxxx
153153
- RTP-LLM C++客户端: kv_cache_manager/client
154154
- vLLM等Python客户端:kv_cache_manager/py_connector
155155

156+
### 8. (如果是修改AdminService)同步适配 kvcm_ops 运维 CLI
157+
158+
- 工具位置:`package/kvcm_ops`
159+
- 若 InstanceGroup / Storage 等管理对象新增或变更字段,需同步更新对应的 Python 模型(如 `kvcm/instance_group/util.py`)的构造、校验与 JSON 序列化/反序列化,以及相关 create/update 命令参数。
160+
- 否则 kvcm_ops 的 update 流程(GET → 整体 PUT)会静默丢弃服务端已有字段,导致配置被意外清空。
161+
156162
## 注意事项
157163

158164
1. **字段编号**:在proto文件中添加新字段时,使用递增的字段编号,避免重复使用已存在的编号。

kv_cache_manager/protocol/protobuf/admin_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// 修改本文件前请阅读 docs/develop/proto_modification_guide.md(Proto 文件修改指南),并同步完成其中列出的适配步骤。
2+
13
syntax = "proto3";
24

35
package kv_cache_manager.proto.admin;

kv_cache_manager/protocol/protobuf/debug_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// 修改本文件前请阅读 docs/develop/proto_modification_guide.md(Proto 文件修改指南),并同步完成其中列出的适配步骤。
2+
13
syntax = "proto3";
24

35
package kv_cache_manager.proto.debug;

kv_cache_manager/protocol/protobuf/kv_meta_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// 修改本文件前请阅读 docs/develop/proto_modification_guide.md(Proto 文件修改指南),并同步完成其中列出的适配步骤。
2+
13
syntax = "proto3";
24

35
package kv_cache_manager.proto.kv_meta;

kv_cache_manager/protocol/protobuf/meta_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// 修改本文件前请阅读 docs/develop/proto_modification_guide.md(Proto 文件修改指南),并同步完成其中列出的适配步骤。
2+
13
syntax = "proto3";
24

35
package kv_cache_manager.proto.meta;

kv_cache_manager/protocol/protobuf/optimizer_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// 修改本文件前请阅读 docs/develop/proto_modification_guide.md(Proto 文件修改指南),并同步完成其中列出的适配步骤。
2+
13
syntax = "proto3";
24

35
package kv_cache_manager.proto.optimizer;

package/kvcm_ops/BUILD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,9 @@ py_test(
2929
srcs = ["test/storage_util_test.py"],
3030
deps = [":kvcm_ops_lib"],
3131
)
32+
33+
py_test(
34+
name = "instance_group_revisit_buckets_test",
35+
srcs = ["test/instance_group_revisit_buckets_test.py"],
36+
deps = [":kvcm_ops_lib"],
37+
)

package/kvcm_ops/kvcm/instance_group/create_instance_group.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ def create_instance_group(args) -> InstanceGroup:
9292
user_data=args.user_data,
9393
version=1,
9494
extra_info=args.extra_info,
95-
event_report_storage_candidates=args.event_report_storage_candidates)
95+
event_report_storage_candidates=args.event_report_storage_candidates,
96+
revisit_interval_buckets=args.revisit_interval_buckets)
9697
return instance_group
9798

9899

package/kvcm_ops/kvcm/instance_group/update_instance_group.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ def main():
6060
current._extra_info = json.dumps(existing, ensure_ascii=False)
6161
if hasattr(args, "event_report_storage_candidates"):
6262
current._event_report_storage_candidates = args.event_report_storage_candidates
63+
if hasattr(args, "revisit_interval_buckets"):
64+
current._revisit_interval_buckets = args.revisit_interval_buckets
6365
current.check()
6466
current_version = current._version
6567
current._version += 1

0 commit comments

Comments
 (0)