卡桑德拉WRITE = ALL和READ = ONE适用性

问题描述 投票:1回答:2

由于我们有一个2×5节点设置(在2个DC)和3个复制的因素,我们以异步方式创建视图的事实,(所以我们可以放心地重试失败的操作)不使用WRITE = ALL和READ = ONE有意义吗?

如果一个副本失败,我们怎样才能知道恢复时间所以如何拿起权重试间隔和超时?

cassandra replication availability
2个回答
0
投票

以下任何组合应该给你正确的数据:

  1. WRITE = ALL READ = ONE
  2. 写=一个读= ALL
  3. WRITE = LOCAL_QUORUM READ = LOCAL_QUORUM

你可以在你的应用程序调一致性水平,根据应用的负载。

据我,3号LOCAL_QUORUM应该更好地工作,因为有时一个节点可以是高负载下也或许是下跌。您的应用程序将不会受到影响。

在情况下,你必须比读更多的写操作;写CL = ALL将使您的应用程序的速度。


0
投票

WRITE = ALL和READ = ONE的组合是一致的感觉正确的 - 你写的所有副本后,你确实可以从任何一个读取和期待的最新数据。但是,它是坏的高可用性 - 如果在这两个区议会6个副本中的任何一个停机,一个写无法完成。如果一个节点宕机一小时,你不能做一个小时的任何写操作。在一些批处理的设置,这可能是有意义的,但它的交互式工作负载,其中高可用性是首要关注的问题通常不接受的行为。

如果你真的不关心高可用性和只想当所有节点均达到写,然后我猜WRITE = ALL可以工作。你可以在所有的节点都使用了“nodetool”,例如说。或者只是定期重试写操作。

© www.soinside.com 2019 - 2024. All rights reserved.