Replica Placement Strategy(RPS)
来源:互联网 发布:禁止王者荣耀端口 编辑:程序博客网 时间:2024/05/12 08:54
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。
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,同理。
NetworkTopologyStrategy还依赖于Snitch来精确的确定replica是放在哪个DC和RAC上。
- Replica Placement Strategy(RPS)
- Replica Placement(副本放在位置)
- Replica Placement in DFS
- Hadoop Replication Pipelining, Replica Placement Policy, Replication Rack Awareness
- Linux RPS RFS(todo)
- HEVC 参考帧管理(RPS)
- HEVC 参考帧管理(RPS)
- HEVC 参考帧管理(RPS)
- HEVC 参考帧管理(RPS)
- 定位(placement) new
- 笨法算RPS
- placement new(定位new)
- 策略(Strategy)模式
- Strategy(策略)模式
- 策略(Strategy)模式
- Strategy (C++实现)
- Strategy(策略模式)
- 策略模式(Strategy)
- count与NULL
- Android 中颜色对应的值
- Android GC机制及一些调试信息
- 更新记录后关闭子窗口并刷新父窗口的Javascript
- php js 正则匹配密码只能是数字和字母组合的字符串
- Replica Placement Strategy(RPS)
- div+css适合div的css属性
- C++ primer中的for循环写法、数组轮转、取模操作
- iPhone开发学习笔记通过UIView实现动画效果
- hive中自定义函数(UDAF)实现多行字符串拼接为一行
- smack 源码分析一(android上实现长连接)【1】
- HDU1496--Equations
- NSXMLParser和dom详解
- CDN总结之一