TiKV batchput size limit

我有两个 TiKV Server,Version 3.0.9 and version 5.0.1, 同样的数据 batchput 到TiKV v3.0.9 可以, 但Failed for TiKV v5.0.1.
我的数据有点大, 每条记录 key-value, value 有大约60 MB. batch size 大约 2000 条。
我把数据 value size 减少一些后,可以存入TiKV v5.0.1。

我想问一下为什么v5.0.1 比旧版本处理的数据更少,我找不到文档它的size limit 是多少。 可以修改配置吗?谢谢

2 个赞

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#txn-entry-size-limit-span-classversion-mark从-v50-版本开始引入span

https://docs.pingcap.com/zh/tidb/stable/tidb-limitations
image

参考下

1 个赞

具体报错是什么?出于性能考虑,无论 3.0 还是 5.0,TiKV 都对单个请求的 KV 有限制,总大小不能超过 8MiB。

请问下你是直接用 TiKV 还是用 TiDB 写入的?请问下 3.0 是不是修改过 [raftstore] raft-entry-max-size = “8MB” 这个配置?这个配置默认 3.0 和 5.0 都是 8 MB 的,意味着单行的 size 不能超过这个限制。

我用tikv写入,用rawClient, 好像 8MB 没有关系,我单行肯定超这个限制了。 我的问题是可能同时batchput 太多了,我有100 AWS cluster nodes 同时写数据。 不知道怎么调整。

@zhangjian PTAL

请问下你采用的是什么语言的 tikv client?大概采用了什么接口写入的?我们对比下 3.0 和 5.0

我用spark, RawKVClient.batchput(map<ByteString, ByteString>) 谢谢

请问具体报什么错?

谢谢大家的回复,我最后的解决方法是减少并行写入, 由100 nodes 减少到 50 nodes, 速度慢一些,但不会出错。

老实说,一个value就有60M,这个应该不是关系类型的数据了吧,应该是图片、文档之类的数据,这样来的数据,是否适合使用TiDB都要打个问号。

1 个赞

一般情况下,跑批时 同时关注 单个事务大小限制 txn-total-size-limit

赞同。。。还是首先要考虑是否适用

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