tikv update操作

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0
  • 【问题描述】:没有使用tidb,直接使用tikv部署kv集群
    问题:tikv有无update操作?如果有,有没办法保证update原子操作?就是比如已有key1-value1在数据库中,并发执行:用户1执行del key1,用户2执行update(实际可能是get key1后put key1),如何避免执行时序:用户2 get key1 -> 用户1 del key1 -> 用户2 put key1,最终结果是key1又出现数据库中,现在业务需要key1如果被del了不能update,目前看tikv好像没办法做到这种效果,如果使用tidb是否可做到?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

TiKV 有两种 API 访问方式,一种是 Raw key-val api 另一种是 Transaction key-val api,使用 Transaction key-val api 的话可以保证事务原子性

具体可以参考:

谢谢,想了解用txnkv接口,性能上比rawkv接口差吧,有没测试过事务和非事务接口的性能会差多少?

这个暂时没有对比的测试报告?如果有兴趣的话是否可以用 go-ycsb 对比测试一下两个接口的性能差异并分享一下?
https://github.com/pingcap/go-ycsb