为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
未使用tidb,Java客户端访问 事务kv
【概述】 场景 + 问题概述
在事务内,先读部分key-value,再修改部分key-value,需要保证读出的数据在事务还没完成时不被修改。
所以 是不是需要在读之前先对key加锁,类似如下操作
Kvrpcpb.Mutation mutation = Kvrpcpb.Mutation.newBuilder()
.setKey(primaryKey)
.setOp(Kvrpcpb.Op.PessimisticLock)
.build();
RegionStoreClient client = tiSession.getRegionStoreClientBuilder().build(primaryKey);
client.prewrite(backOffer, primaryKey, Collections.singletonList(mutation), startTs, 10_000);
【应用框架及开发适配业务逻辑】
tikv java客户端 v3.2.0
【背景】 做过哪些操作
先对key加悲观锁,再preWrite部分key,最后一起commit
【现象】 业务和数据库现象
用java客户端加锁时报错
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】
【附件】 相关日志及监控(https://metricstool.pingcap.com/)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。