[论文笔记]Dynamo: Amazon’s Highly Available Key-value Store

这篇论文叙述的是 Amazon 研发的高可用 Key-Value 存储系统,Dynamo。很多 Amazon 的核心服务依赖于它,它通过牺牲在某些特定失效情况下的数据一致性来保证高度可用。它采用一致性哈希来获得可伸缩性和提高可用性,并且通过对象版本(Object Versioning)来保证一致性。在更新数据过程中,副本之间的一致性通过一种 quorum-like 技术和去中心化的同步复制协议保证。Dynamo 采用基于 gossip 的失效探测和成员协议。Dynamo 是完全去中心化的系统,节点增加和删除不需要人工操作。

设计思考

这里作者指出 Dynamo 两个设计权衡点,一个是什么时候解决更新数据的冲突,一个是谁来解决冲突。前者 Dynamo 决定在 read 的时候解决为了保证 wirte 一直可用提供良好的用户体验;后者觉得由应用来解决而不是 data store 已获得灵活性。

比较讨论

这部分作者提到了一些中心化的存储系统,指出 Dynamo 由于特殊需求从而设计也与这些系统不同。主要的特殊需求体现在:(一)永远可写,不能拒绝写请求;(二)建立在所有节点均可信任的基础设施上;(三)使用 Dynamo 的应用不依赖层次结构的命名服务;(四)低延迟和高性能决定了不能将请求进行过多的路由转发

系统架构

论文聚焦于系统的数据分区、复制、版本、成员、容错和伸缩。

系统接口

Dynamo 提供 get 和 put 两个接口。get(key) 操作定位到数据的副本且返回一个单独对象或者版本不同的对象列表和 context。put(key, context, object) 操作决定数据存到哪个副本且将副本刷回磁

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值