【问题标题】:Does Cassandra create hints for non idempotent operations?Cassandra 是否为非幂等操作创建提示?
【发布时间】:2016-06-02 21:33:07
【问题描述】:

我知道关于提示切换和非幂等操作的一些要点:

  • 请求操作期间的 WriteTimeout 会导致创建提示
  • WriteTimeout 并不表示数据已写入,但也不表示数据也未写入
  • 提示将在未来重播失败的操作
  • 不能多次应用非幂等操作(插入列表或更新计数器)而不改变初始应用后的结果

例如,我想将项目添加到表中的某个列表中。我有复制因子 = 2 并尝试以一致性级别 = 1 执行查询。 但我收到了 WriteTimeoutException。 是否会再次存储并重放此操作的提示?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    据我所知,在创建提示时,更新中是否涉及计数器之间只有区别。不应该提示对计数器的更新,而其他常规操作(例如列表追加)会提示。

    例如,我想将项目添加到表中的某个列表中。我有复制因子 = 2 并尝试以一致性级别 = 1 执行查询。但我收到了 WriteTimeoutException。是否会再次存储并重放此操作的提示?

    在典型情况下我会说是的。

    【讨论】:

    • 感谢您的回答。也许你可以给我一些关于它的文件?除了wiki.apache.org/cassandra/Counters 中的一行,我找不到任何内容: >如果写入意外失败(超时或与协调节点的连接丢失),客户端将不知道操作是否已执行。重试可能会导致计数过多
    • 我直接查看源代码。但是你的权利,似乎没有很多信息在文档或任何地方详细说明它是如何工作的。
    猜你喜欢
    • 2010-11-07
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多