pet*_*snd 6 replication partitioning distributed-system cassandra
我是Cassandra的新手,仍然试图围绕内部工作.
我正在考虑在一个只有少量节点(少于10个,最常见的是3个)的应用程序中使用Cassandra.理想情况下,我的集群中的每个节点都将拥有所有应用程序数据的完整副本.所以,我正在考虑将复制因子设置为簇大小.添加其他节点时,我会更改键空间以增加复制因子设置(nodetool修复以确保它获取必要的数据).
我将使用NetworkTopologyStrategy进行复制,以利用有关数据中心的知识.
在这种情况下,分区实际上如何工作?我已经读过在Cassandra中形成环的节点和分区键的组合.如果我的所有节点都对每个数据"负责"而不管分区器计算的哈希值,我是否只有一个分区键的环?
这种类型的Cassandra部署是否有巨大的挫折?我猜测会在后台进行大量异步复制,因为数据传播到每个节点,但这是设计目标之一,所以我很好.
读取的一致性级别通常可能是"一"或"local_one".
写入的一致性级别通常为"2".
我实际上是否有一个分区环,分区程序生成的所有可能值都进入一个分区?
每个节点是否被视为对每一行数据都是“负责任的”?
如果我的所有节点都对每个数据“负责”,而与分区程序计算出的哈希值无关,那么我是否只有一个分区键环?
不完全是,C *节点仍具有令牌范围,而c *仍将主副本分配给“负责”节点。但是所有节点还将具有RF = N(其中N是节点数)的副本。因此,本质上的含义与您所描述的相同。
这种Cassandra部署是否存在巨大的失败?我不知道该策略还有其他缺点吗?
我想不到,我想您可能会比平均值更容易受到不一致数据的影响,因此请使用C *的反熵机制来解决此问题(修复,读取修复,提示切换)。
一致性级别的法定人数或全部都会开始变得昂贵,但是我看到您不打算使用它们。
除了显而易见的集群群集情况之外,复制因子==群集大小是否是常见(甚至合理)的部署策略?
这并不常见,我想您正在寻找超高可用性,并且所有数据都可以放在一个盒子中。我认为我从未见过RF * 5的ac *部署。远距离RF = 3。
如果我使用写一致性“ 1”,Cassandra是否总是将数据写到客户机联系的节点上?
这取决于您在驱动程序上的负载平衡策略。通常,我们会选择令牌识别策略(假设您使用的是Datastax驱动程序之一),在这种情况下,请求会自动路由到主副本。您可以在自己的情况下使用轮询,并具有相同的效果。
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |