我在调试中不断看到这个错误。登录cassandra,
WARN [SharedPool-Worker-2] 2018-05-16 08:33:48,585 BatchStatement.java:287 - Batch of prepared statements for [test, test1] is of size 6419, exceeding specified threshold of 5120 by 1299.
在这个里面
where,
6419 - Input payload size (Batch)
5120 - Threshold size
1299 - Byte size above threshold value
因此,根据Cassandra中的这个标签,https://github . com/krasserm/akka-persistence-Cassandra/issues/33,我看到这是由于输入有效负载大小的增加,所以我将cassandra.yml中的< code > commit log _ segment _ size _ in _ MB 增加到< code>60mb,我们不再面临此警告。
这种警告有害吗?增加commitlog_segment_size_in_mb会影响性能吗?
提交日志段大小以mb为单位表示提交日志归档或时间点备份的块大小。仅当在commitlog_archiving.properties文件中配置了archive_command或restore_command时,这些选项才处于活动状态。默认大小为32mb。
根据Apache Cassandra专家管理手册:
you must ensure that value of commitlog_segment_size_in_mb must be twice the value of max_mutation_size_in_kb.
你可以参考一下:
17076203字节的突变对于16777216的最大大小来说太大
这与提交日志大小没有直接关系,我想知道为什么它的更改会导致警告消失...
批大小阈值由默认为
5kb(5120 字节)batch_size_warn_threshold_in_kb参数控制。
您可以将此参数增加到更高的值,但您确实需要有充分的理由使用批处理-了解它们使用的上下文会很好…
使用卡桑德拉准备语句时,将字段与静态值绑定是否有任何好处? 例如,即使我总是使用静态值“Active”,status是否也应该有一个bind变量?如果是,为什么? 更新用户设置status='Active',其中user_id=:userid
我在日志中收到以下警告: WARN[本机传输请求:17058]2014-07-29 13:58:33776 BatchStatement。[keyspace.tablex]的java(第223行)批准备语句的大小为10924,超过了指定的阈值5120乘以5804。 有没有办法在Spring数据卡桑德拉指定大小? Cassandra 2.0.9和spring数据Cassandra 1.0.0-REL
我想知道使用比有什么好处? 最简单的方法是: 如您所见,我可以将数据绑定到< code>preparedStatement而无需< code>boundStatements。< code>boundStatement在哪里有用?
问题内容: 我试图用大约50,000行10列填充Java中的resultSet,然后使用的方法将它们插入到另一个表中。 为了使过程更快,我进行了一些研究,发现在将数据读入resultSet时,fetchSize起着重要的作用。 如果fetchSize太低,可能会导致到服务器的行程过多,而fetchSize太高则会阻塞网络资源,因此我做了一些尝试,并设置了适合我的基础结构的最佳大小。 我正在阅读此r
我有一个脚本可以插入大量的数据。此数据主要是前一个insert的复制,但至少有一个值不同。因此,我准备语句并绑定参数以执行和重复。 我现在使用的代码(一次全部大容量插入): 我想要实现的是,数据将用像上面这样的准备好的语句插入,但每个批处理的限制是1000(或任何其他数字)。我不能让这件事发生。我尝试使用和其他方法,但无法使其工作。
问题内容: 您将如何用PHP编写一个准备好的MySQL语句,每次使用不同数量的参数?这样的查询的示例是: 该条款将有不同数量的s各自运行它时。 我心中有两种可能的解决方案,但想看看是否有更好的方法。 可能的解决方案1 使该语句接受100个变量,并用保证不在表中的伪值填充其余变量;多次调用100多个值。 可能的解决方案2 请勿使用准备好的语句;严格构建并运行查询以检查可能的注入攻击。 问题答案: 我