dynamo和cassandra区别


1 如何处理副本的一致性。

cassandra:采用最后写入获胜。当有多个版本的数据存在时,以时间戳大的值为准。
Dynamo:使用向量时钟(vector lock)。为数据保持一个时钟列表,其中的每个元素是(更新值的节点,序列号),见下图。
 
图 向量时钟处理多个版本的一致性
2 负载均衡
使用一致性hash来分布数据可能会导致数据分布不均匀。
dynamo:使用虚拟节点技术,一个物理节点可能在环上对应多个节点。

cassandra:分析节点的负载,移动节点在环上的位置。


3 hinted handoff
dynamo:用来处理节点暂时的失效。如某个节点A 异常,若此时有写操作,则数据会临时的写入另外一个节点B上,待A节点恢复后,把数据写入到恢复健康的节点A。这个操作会在写入成功的节点数中计数【注: R/W请求中都会带一个参数,表示R/W操作涉及到的最小副本数】,在A节点恢复之前,读操作也可以从B节点上读取,并且会计数。而在cassandra中,在B节点上进行读写操作,都不会计数,所以在cassandra中,hinted handoff只用来加速节点的恢复。

4 底层的存储模型
cassandra:采用bigtable的存储模型,表分为多个列族,每个列族由memtable和sstable files组成。
dynamo:没有公开的文档显示其存储模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值