【问题标题】:Impact of modifying value of batch_size_fail_threshold_in_kb in cassandra.yaml修改cassandra.yaml中batch_size_fail_threshold_in_kb值的影响
【发布时间】:2020-12-22 18:26:16
【问题描述】:

我有一个关于 cassandra.yaml 属性 batch_size_fail_threshold_in_kb 的问题。我当前的设置有 batch_size_fail_threshold_in_kb: 50。

我看过 DataStax 6 文档,它默认显示 640 kb。 https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/config/configCassandra_yaml.html

那么可以更改 batch_size_fail_threshold_in_kb 属性吗?什么都会受到它的影响?

【问题讨论】:

    标签: cassandra datastax cassandra-3.0 datastax-java-driver


    【解决方案1】:

    如果没有非常充分的理由,我不会更改该设置。 batch_size_fail_threshold_in_kb 的值是为了防止协调节点在发送非常大的批次时崩溃。众所周知,以 RDBMS 方式使用的批处理语句(向同一个表发送数千个批处理写入)是有问题的,此设置有助于防止它们。

    我有应用程序团队与我联系,要求增加这个值(正确使用批处理时),因为他们的有效负载列超过了这个阈值。我会根据具体情况进行处理。

    我无法谈论 DataStax 如何决定他们的(更高的)默认值。我的猜测是,这可能与他们的 Solr 或 Graph 集成有关。

    tl;dr;

    batch_size_fail_threshold_in_kb 是一种几乎不需要调整默认值的设置。

    【讨论】:

    • 我必须自动更新两个表。我有两张表,一张是 student_by_name,另一张是 student_by_subject。单个语句的大小超过 50 kb。最好的方法应该是什么?
    • @PurushottamBaghel 好的,听起来您正在尝试以正确的方式使用BATCH,这很好。尝试计算您的批次将达到的最大限制,并将其设置为加上一点额外的(为了安全起见)。因此,如果您的最大值为 75kb,则可以将其设置为 100kb。
    • 谢谢@Aaron,我也会这样做。但是我是否也需要更改任何其他属性,所以什么都不会破坏??
    • @PurushottamBaghel 也许还要检查和调整batch_size_warn_threshold_in_kb,这样您的日志就不会被填满。但应该这样做。
    • 我将 batch_size_fail_threshold_in_kb 增加到 100 和 batch_size_warn_threshold_in_kb 到 10。碰巧有什么方法可以测试一切正常吗?
    猜你喜欢
    • 2012-08-20
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多