http://catkang.github.io/2016/05/27/dynamo.html
Dynamo是Amazon开发的分布式存储系统,本文是阅读Dynamo论文后的总结:Dynamo: Amazon’s Highly Available Key-value Store。将从背景、定位、简介、问题及解决方案几个方面介绍Dynamo的整体设计思路。
背景
Dynamo是在Amazon所处的应用环境中因运而生的,其需要面对的问题和场景在互联网的业务中也是类似的:
大多数场景并不需要复杂的查询功能;
由于使用商用机作为服务器,导致机器或网络失败成为相对常见并需要妥善处理的场景;
为了提供良好的用户体验,服务需要极高的可用性和较好的性能;
随着业务量逐步增大,服务的处理能力也需要平滑提升。
定位
为了理解Dynamo的整体设计,了解其定位是很有必要的,因为从其定位中我们可以清楚的了解到系统关注的问题和可以放弃或妥协的点。针对上所述的背景,Dynamo提出了自己的基本定位:
仅提供简单的kv查询
高可用性
易扩展性
正是由于上述对自己的定位,Dynamo在设计中可以舍弃掉许多负担,如关系型数据库复杂的查询模型、对ACID的支持,对强一致性的追求,以及复杂的存储结构。同时,Dynamo认为其面对的是相对安全的内部网络环境,所以并没有处理安全或权限问题。
简介
Dynamo客户端使用put,get接口读写指定key所对应的数据;
将整个数据空间划分为不同分片后存储在不同节点上;
其通过分