Recitation 6
Recitation6: Dynamo: Amazon’s Highly Available Key-value Store
515030910223
杨健邦
The consistent hashing technology is a key point in this paper.Please refer to wikipedia to understand it before reading.Why introduce virtual node? What’s the problem?
-
一致性要解决的问题是,当“模”发生变化时,或者说节点数量改变时,所有的值都需要重新哈希。一致性哈希希望节点数量改变时,只有失效或新增节点上面的数据受影响,其它节点不需要重新哈希。
-
为什么要引入虚拟节点:
- 提高系统的可用性,重建死掉的节点更快
- 允许在同一集群使用不同性能的机器
- 无需为每个节点计算、分配token
- 添加移除节点后无需重新平衡集群负载
How many other problems does Dynamo try to solve? Please list an outline of the problems and corresponding solutions, as many as you can.
- 数据的可靠性:将数据写入多个位于不同物理节点的虚拟节点。
- 数据的一致性:使用最终一致性模型,通过”多数原则”以及时钟向量的方法来实现。同时使用coordinator来解决读写冲突。
- 节点的可写行(可用性):当某个节点崩溃,先让另一个节点暂时记录所写数据,并做相应的标志,待崩溃的节点恢复,再写入这个节点。
For each solution, could you please figure out which scenarios are suitable, and which are not? List as many scenarios as you can, and offer your own solution if you have. Bring your ideas to the class for discussion.
-
适用于,对数据可靠性十分重视的,例如金融、支付。
-
适用于,对数据准确性不是非常需要的应用,比如朋友圈、评论的显示,即时聊天内容的显示。不适用于,金融、支付等无法容忍数据不准确的场景。
-
适用于, 对写的可用性有很大需要的应用,要保证时时都有可写性。