KV 接口

    后续将提供 remove,removeRange 以及 scan 的方法。

    处理返回结果

    用户可以通过检查 rpc 返回结果查看相应操作是否成功。此外由于每个 Nebula Graph storage 中都对数据进行了分片,因此如果对应的 Partition 失败了,也会返回每个失败的 Partition 的错误码。若任意一个 Partition 失败,则整个请求失败(resp.succeeded()为 false),但是其他成功的 Partition 仍然会成功写入或读取。

    对于 Get 接口,用户需要一些操作来获取相应的返回值。Nebula storage 是基于 Raft 的多副本,所有读写操作只能发送给对应 partition 的 leader。当一个 rpc 请求包含了多个跨 partition 的 get 时,Storage Client 会给访问这些 key 所对应的 Partition leader。每个 rpc 返回都单独保存在一个 unordered_map 中,目前还需要用户在这些 unordered_map 中遍历查找 key 是否存在。示例如下: