Replica Placement Strategy(RPS)

replica placement strategy只是针对Keyspace而言的,将会决定这个Keyspace的replica如何分布到Cluster上。
       
       SimpleStrategy
       当用cassandra自带的cli创建了一个keyspace的时候SimpleStrategy是默认的RPS。当用代码创建的时候,需要指定这个参数。
       SimpleStrategy中,第一个replica将会被放在partioner确定的Node上。其他的replica将会按照围绕token ring顺时针的方向依次放到第一个replica确定的Node之后的Node上,不会考虑RAC或者DC的位置。
       如下图:A1,A2,A3表示数据A的3个replica。
【cassandra】About Replication in Cassandra - sylareclipse - zorksylar
 
      NetworkTopologyStrategy
      NetworkTopologyStrategy将会考虑到RAC和DC的位置,并且能够指定每个DC中数据的replia的个数。
      这时候RF不能够随便定了,在确定RF设定多少的时候,需要考虑:
       1)最好能够保证read locally,避免跨DC的延时
       2)失败的情况。
      多个DC的时候,最常见RF设定是:
      1)RF=2,在每个DC中。这样能够保证在每个DC中的single Node的失败,并且能够保证consistency level为ONE时候的local read.
      2)RF=3 ,在每个DC中。这样能够容忍在consistency level为LOCAL_QUORUM时候的每个DC 的one Node failure,或者consistency level为ONE的情况下的每个DC的multiple node failure。
      上面只是建议。每个DC的RF可以不一样。
       在采用这种的时候,replica placement对每个DC来说都是独立的。每个DC中,每个数据的第一个replica的位置都是根据partitioner确定的,其他的replica按照ring的顺时针的第一个与上个replica不同RAC的Node上,如果没有找到这样的Node,这个replica将会放到和上一个replica同一个RAC的Node上。这样做是因为同一个RAC上的Node可能会同时遇到failure的情况,如断电之类的,所以NetworkTopologyStrategy尽量将replica放到不同的RAC上。
      举个例子:数据R,DC1和DC2的RF=2。在DC1上,首先根据partitioner确定R1位置在Node3,然后找下一个RAC,将R2放到Node4。在DC2,同理。

【cassandra】About Replication in Cassandra - sylareclipse - zorksylar【cassandra】About Replication in Cassandra - sylareclipse - zorksylar
 
      NetworkTopologyStrategy还依赖于Snitch来精确的确定replica是放在哪个DC和RAC上。
      
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值