【问题标题】:Consistency level Quorum vs One for reads after Inserts插入后读取的一致性级别 Quorum vs One
【发布时间】:2016-08-25 18:36:17
【问题描述】:

我有一个只在 cassandra 中执行插入/删除的应用程序。所有写操作(插入/删除)应用程序都使用一致性级别 QUORUM 执行,读取操作当前也使用 QUORUM 执行,但我想知道在这种情况下(当没有数据更新时)一致性级别 ONE 是否会给出相同的结果作为法定人数。

【问题讨论】:

    标签: cassandra consistency


    【解决方案1】:

    不一定。可能是您的读取请求转到尚未(尚未)接收/应用更新的 one 节点。 QUORUM 一致性级别确实允许某些节点还没有更新的数据;通过使用ONE 的一致性级别进行读取,您可能会读取过时的数据。也许您的应用程序可以处理这种情况——这由您决定。但您应该知道,读取的一致性级别 ONE可能不会返回您在您的情况下所期望的数据。

    希望这会有所帮助!

    【讨论】:

    • 谢谢解答,即使我们使用TokenAwarePolicy负载均衡策略也不能保证吗?我虽然在这种情况下查询总是被发送到应该请求密钥的节点。
    • 查询将被发送到应该具有请求键的节点(基于散列——但同样,这是更新和读取之间的竞争条件. 使用TokenAwarePolicy 可以减少在使用一致性级别ONE 进行读取时,您会得到一个过时的读取——但不能完全防止它。
    • 我还应该指出,如果您正在考虑在您的 Cassandra 配置中拥有多个“数据中心”,您可能希望使用 LOCAL_QUORUM 一致性级别,而不是 QUORUM;后者在跨数据中心强制执行仲裁,这可能会增加不希望的延迟(或者这可能是您需要的行为?);这是一个需要注意的小问题。
    猜你喜欢
    • 2016-07-05
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2021-01-22
    • 2015-09-25
    • 2017-06-14
    相关资源
    最近更新 更多