更新时间:2025-11-25 GMT+08:00
分享

同步查询KvCache

功能介绍

用于查询 EMS 缓存池中是否存在已保存的 KVCache 数据块,查询结果将以表 CcResult形式返回。

接口约束

  • 同步接口:接口会休眠阻塞。
  • 加速卡限制:仅支持华为昇腾加速卡显存查询。
  • 异常处理:若 KVCache 数据块查询超时或失败,接口返回0命中,框架将重新进行计算。

方法定义

ContextCaching.exists(hashes, option, **kwargs)

请求参数说明

表1 请求参数列表

参数名称

参数类型

是否必选

描述

hashes

List[int]

参数解释:

预计算的块前缀哈希列表。

约束限制:

无。

取值范围:

无。

默认取值:

None。

option

表2

参数解释:

ContextCaching访问内存池的KV操作选项。

约束限制:

不能为None。

取值范围:

无。

默认取值:

无。

表2 CcKvOption

参数名称

参数类型

是否必选

描述

write_rcache

bool

可选

参数解释:

是否将本次写入保存为本地读缓存,默认值为True。

约束限制:

无。

取值范围:

True:将本次写入保存为本地读缓存

False:不将本次写入保存为本地读缓存

默认取值:

True

read_local_only

bool

可选

参数解释:

是否只读本地缓存,如果置为True,则不会从其他节点读取数据,只有读流程生效。

约束限制:

无。

取值范围:

True:只读本地缓存

False:优先读本地缓存,如果本地未命中,则从其他节点读取数据

默认取值:

False

timeout

int

可选

参数解释:

请求超时时间,单位为毫秒。

约束限制:

无。

取值范围:

大于等于0。

默认取值:

5000

返回结果说明

表3 返回结果

类型

说明

表4

参数解释:

Context Caching访问内存池的执行结果。

取值范围:

无。

表4 CcResult

参数名称

参数类型

描述

success

int

参数解释:

请求的批量key读写连续成功的个数。

约束限制:

无。

取值范围:

0~请求key的个数。

默认取值:

无。

total

int

参数解释:

请求的批量key总个数。

约束限制:

无。

取值范围:

请求列表中批量key的个数。

默认取值:

无。

代码样例

下面为从EMS中同步查询KVCache,同时对异常进行容错处理。
# 设置请求的超时时间 
option = CcKvOption(timeout=5000)
# 组成参数列表 
hashes = [0xABCD, 0x1234] 
# 可以根据不同异常,采取不同处理方式,例如超时错误可以重试。 
try: 
    cc_result = cc.exists(hashes = hashes, option = option)
except EmsException as e: 
    print(f"failed to exists, {e}.") 
    exit(2) 
print(cc_result) 

相关文档