TiKV raw key 测试出现 Region Exception occurredpeer is not leader for region 异常

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0.8

【问题描述】

使用TiKV Raw API 进行测试过程中,经常出现 以下异常:

org.tikv.common.exception.GrpcException: retry is exhausted.
at org.tikv.common.util.ConcreteBackOffer.doBackOffWithMaxSleep(ConcreteBackOffer.java:148)
at org.tikv.common.util.ConcreteBackOffer.doBackOff(ConcreteBackOffer.java:119)
at org.tikv.raw.RawKVClient.put(RawKVClient.java:126)
at org.tikv.raw.RawKVClient.put(RawKVClient.java:104)
at com.xiaomi.infra.galaxy.tikv.TiKVYCSB.insert(TiKVYCSB.java:125)
at com.yahoo.ycsb.DBWrapper.insert(DBWrapper.java:221)
at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionInsert(CoreWorkload.java:819)
at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(CoreWorkload.java:638)
at com.yahoo.ycsb.ClientThread.run(Client.java:455)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.tikv.common.exception.RegionException: Region Exception occurredpeer is not leader for region 312260, leader may Some(id: 314297 store_id: 4)
at org.tikv.common.region.RegionStoreClient.rawPutHelper(RegionStoreClient.java:931)
at org.tikv.common.region.RegionStoreClient.rawPut(RegionStoreClient.java:915)
at org.tikv.raw.RawKVClient.put(RawKVClient.java:122)

随着并发数增大,这类异常出现的频率越来越大


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

这是因为 leader 发生迁移,正常的日志
这个错误对应用有影响么?如果有影响的话,需要处理一下这个错误,根据返回的内容,将请求发送到新的 leader 所在的 tikv 节点上。

是这样的, 我在用YCSB 来测试 TiVK raw api 性能, 一个进程测试时基本不会有问题, 读取延迟及QPS都是正常的,但是一旦我开三个进程来测试时,基本上100%会出现上面这个性况,导致YCSB QPS 下降到基本数据不可用的状态, 关于这一点,请问一下,你这边有什么好的建议么?

  1. 测试使用的是 go-ycsb 测试的吗?
  2. 测试命令是怎么样的?
  1. Java 客户端

  2. 命令如下:
    bin/ycsb.sh run tikv -P workloads/workloadc -p fieldcount=20 -p recordcount=1000000 -p insertproportion=0.2 -p readproportion=0.4 -p scanproportion=0.4 -p writeallfields=true -p readallfields=true -p operationcount=1000000 -p fieldlength=320 -threads 16

我测试的时候起了三个进程

可以试下用 go-ycsb 压测看会有这个问题吗?直接用 Java 的 YCSB 压测可能是会有点问题

https://github.com/pingcap/go-ycsb

@GangShen 好的,多谢,我试一下

好的,测试结果可以这边同步一下。