强一致性模式下的 Cassandra 可用性损失
Posted
技术标签:
【中文标题】强一致性模式下的 Cassandra 可用性损失【英文标题】:Cassandra availability penalty in strong consistency mode 【发布时间】:2016-09-24 20:55:55 【问题描述】:当我得到 Cassandra 时,它具有所有一致性级别。它提供:“最高的一致性和最低的可用性”。如果这个级别提供强一致性?
它有什么可用性损失?我没有看到数据不可用的情况。任何人都可以举一个这样的例子。
【问题讨论】:
【参考方案1】:如果您使用 ALL 的一致性级别,那么协调器必须接收来自所有节点的响应。这意味着:
写入成功后,没有人会读取之前的状态(高一致性)。 即使单个节点无法响应,整个读/写操作也会失败(可用性低)。如需进一步阅读,请参阅CAP theorem。
节点因维护而断开连接。 一个节点崩溃了。 服务器机房/数据中心断电。 节点由于高负载而无响应。 到节点的网络连接断开或变得太慢。 数据尚未传播到所有节点。谁能举个例子。
【讨论】:
这些例子暗示了这一点,但答案并没有直接出来,说 CL=ALL 是一个玩具和一个教学工具。没有人将它用于实际应用程序的生产中,这样做会很疯狂,因为即使单个节点变慢/变慢也会导致查询错误。将 LOCAL_QUORUM 用于读取和写入实际上可以为您提供相同数量的一致性,但具有合理的可用性权衡(>每个副本集中一半的副本需要响应)。以上是关于强一致性模式下的 Cassandra 可用性损失的主要内容,如果未能解决你的问题,请参考以下文章
云图说|初识云数据库GaussDB(for Cassandra)