go语言客户端tikv是没有批量set的方法嘛

go客户端只有get delete batchget set方法,rust有batchset的方式,为什么go没有呢

都有 batchPut 接口吧

没有啊,我看源码带事务的只有set没有batchput,只有普通的raw有RawBatchPut是批量的,但是带事务的还没有

txn 的话 rust 也没有 batchset 吧。

按我的理解,事务模型下,set 都只是写到 membuffer 里,都是内存操作,一次写一个和多个没有啥性能上显著的区别。相对的有和 tikv 交互的 rpc,比如 lockkeys 就支持一次处理多个 key。

1 个赞

rust里有一个batch_mutate,话说tikv 交互的 rpc,哪里有lockkeys

client-go/txnkv/transaction/txn.go at a348c17c6b423ae016d80fede1b2a115a85edb5e · tikv/client-go · GitHub 悲观事务的情况下,给 tikv 对应的 key 上锁的 rpc

1 个赞

意思是先锁住需要操作的key,然后在一个个遍历的set嘛?

悲观事务,会先写到内存的 membuffer 上,并会把对应的需要锁的 key 锁上,然后在 commit 的时候把数据完整的写到 tikv 上。

可以看下 prewrite 的接口,还有悲观事务的介绍。https://docs.pingcap.com/zh/tidb/stable/pessimistic-transaction

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。