我在日志中收到此警告:
WARN [Native-Transport-Requests:17058] 2014-07-29 13:58:33,776 BatchStatement.java(第223行)[keyspace.tablex]的预准备语句批量大小为10924,超过指定的阈值5120到5804。
有没有办法在spring数据cassandra中指定大小?
Cassandra 2.0.9和spring数据cassandra 1.0.0-RELEASE
答案 0 :(得分:12)
这只是一个警告,通知您查询大小超过了某个限制。
查询仍在处理中。背后的理由是更大的批量查询是昂贵的并且可能导致集群不平衡。因此事先警告您(开发人员)。
在batch_size_warn_threshold_in_kb
中查找cassandra.yaml
,以调整何时产生此警告。
这是介绍它的票证:https://issues.apache.org/jira/browse/CASSANDRA-6487
答案 1 :(得分:1)
我已经对Cassandra进行了广泛的性能测试和调优,与DataStax支持密切合作。
这就是为什么我在SDC *中创建了ingest()方法,它们在1.0.4.RELEASE和更高版本中超快。
此方法为您缓存PreparedStatement,然后遍历各个Bind值并为每个插入调用executeAsync。这听起来很直观,但却是插入Cassandra的最快(也是最平衡)的方式。