rust 版的 tikv-client 适配问题

  1. 项目readme中给出的例子有问题:
    RawClient::new实际上只接收一个参数, 例子中给了俩
  2. API接口中能不能添加心跳的接口, 或者回调函数; 能获知服务出现问题
  1. 谢谢指出
  2. client 自带心跳检测,如果服务有问题会返回 error

能否给个例子, 我正在学习rust,很多不懂的地方。
另外我验证过,断服务后, client并无反应

有两个问题请教下(rawkv):
1: batch_set: 如果某个key设置失败,其他的keys是不是可以设置成功? 是不是需要调用者主动处理错误?
2: client心跳, 如何返回error

客户端类型: RawClient:

现象:

  1. 如果不存在key, 则执行get操作, 返回Ok(None)
    2: 如果执行batch_get, 如果某个key不存在, 则不会返回任何相关信息

建议:
执行batch_get操作时, 是否能将不存在的key的结果也返回

client心跳, 如何返回error

对不起,我之前看错描述,RawClient 没有心跳机制,TxnClient 才有。RawClient 长时间收不到resp 会 timeout,可能是timeout 时间过长,可以把timeout配置暴露出来

如果执行batch_get, 如果某个key不存在, 则不会返回任何相关信息

是的,batch get 只会返回存在的 kvpair,类似于 scan,需要应用层处理(比如把结果集塞入 hashmap)

batch_set: 如果某个key设置失败,其他的keys是不是可以设置成功? 是不是需要调用者主动处理错误?

batch_put 有可能部分成功部分失败,如果发生部分失败用户暂时没有办法知道哪些失败了(可以改进),需要全部重试。

多谢回复!!!

针对batch_get, 如果贵方实现了key如果不存在返回None结果的话, 则我可以通过index直接获取结果值, 否则得一个个key去匹配 , 性能必然会不太好

client 接收到 batch_put response 就是只有 pairs,client 做这一步还是应用做其实都一样的

多谢, 希望服务端能改善下处理, 这样客户端就不用这么麻烦了