我有一个Java客户端,将记录批量推送(INSERT)到Cassandra集群中。批处理中的元素都具有相同的行键,因此它们都将被放置在同一个节点上。另外,我不需要事务是原子的,所以我一直使用未记录的批处理。
每个批处理中的INSERT命令数量取决于不同的因素,但可以是5到50000之间的任意数字。起初,我只是将尽可能多的命令放入一个批处理中并提交。结果出现了com.datastax.driver.core.exceptions.InvalidQueryException: Batch too large
错误。然后我将每个批处理的INSERT限制设置为1000,然后降低到300。我注意到我只是随机猜测而不知道这个限制来自哪里,这可能会带来麻烦。
我的问题是,这个限制是什么?我能修改它吗?如何知道有多少元素可以放入批处理中?我的批处理何时“满”?