Dynamo是Amazon提供的一款高可用的分布式Key-Value存储系统,其满足可伸缩性、可用性、可靠性。
CAP原理满足:通过一致性哈希满足P,用复制满足A,用对象版本与向量时钟满足C。用牺牲C来满足高可用的A,但是最终会一致。但是,是牺牲C满足A,还是牺牲A满足C,可以根据NWR模型来调配,以达到收益成本平衡。
Dynamo内部有3个层面的概念:
Key-Value:Key唯一标识一个数据对象,Value标识数据对象实体,通过对Key来完成对数据对象的读写操作。
节点node:节点是指一个物理主机。在每个节点上,会有3个必备组件:请求协调器(request coordination)、成员与失败检测、本地持久引擎(local persistence engine),这些组件都由Java实现。本地持久引擎支持不同的存储引擎,最主要的引擎是Berkeley Database Transactional Data Store(存储数百K的对象更合适),其它还有BDB Java Edtion、MySQL以及一致性内存Cache。本地持久化引擎组件是一个可插拔的持久化组件,应用程序可以根据需要选择最合适的存储引擎,比如:如果存储对象的通常为数千字节则可以选择BDB,如果是更多尺寸则可以选择MySQL。生产中,Dynamo通常使用BDB事物数据存储。
实例instance:从应用的角度来看就是一个服务,提供IO功能。每个实例由一组节点组成,这些节点可能位于不同的IDC,这样IDC出现问题也不会导致数据丢失,这样会有更好的容灾和可靠性。
二、背景条件
1、系统假设与要求
(1)查询模型
基于Key-Value模型,而不是SQL即关系模型。存储对象比较小,通常小于1MB。
(2)ACID属性
传统的关系数据库中,用ACID(A原子性、C一致性、I隔离性、D持久性)来保证事务,在保证ACID的前提下往往有很差的可用性。Dynamo用弱一致性C来达到高可用,不提供数据隔离I,只允许单Key更新。
(3)效率
在廉价的机器上满足SLA,通过配置来满足延时和吞吐量的要求,因此,必须在性能、成本、可用性和持久性保证之间做权衡。
(4)其它假设
Dynamo仅在Amazon内部使用,因此,认为其使用环境是可信赖的。
2、服务水平协议(SLA)
所谓服务水平协议是指客户端和服务端在某几个指标上达成一致的一个协议,通常包括客户端请求API的速率、服务端的预期延时,比如:在客户端每秒500个请求负载的高峰时,99.9%的响应时间为300毫秒。
一般业界,对这种面向性能的SLA采用平均数(average)、中值(median)和预期变化(expected variance)。但是这些指标只能对大多数客户端有良好体验,而不是所有。为了解决这个问题,Dynamo采用99.9%百分位来代替这些指标。
3、设计考虑(复制数据)
传统的数据复制算法,在出现故障时,为了保证数据一致性被迫牺牲掉可用性,即:与其不能确定数据是否正确,不如让数据一直不可用直到数据绝对正确时。
但是,一个高度灵活的系统应该能够让用户知道在何种情况下能到达哪些属性,Dynamo就是如此。
对于故障是常态的系统来说,采用乐观复制技术可以提供系统的可用性,但带来的问题是需要检测并协调解决冲突,协调解决冲突的过程又包含两个问题,即:何时协调和由谁协调。Dynamo的设计是数据存储最终一致,即所有更新操作最终到达所有副本。
4000克(g)=8斤1千克=2斤4000克=4个1千克=2斤x4=8斤 4000克嘛 就是4千克 千克和公斤是一样的 所以是 4公斤吨 就是公斤再除以1000 4公斤就便是 0.004吨 ...
编辑导语:如今在这个大数据时代,我们的日常都被计较在个中,最常见的就是线上购物软件的算法,按照大数据对你举办标签化,推送你大概喜欢的商品;本文作者具体阐明白大数据时代的双刃剑,我们一起来看一下。 最...
在这个世界上有很多人出现,其实就是一个过客而已。人活一辈子,不可能每个人都是那么的幸运,也不可能一定会孤独终老。总之,不管我们过得如何,都会遇到属于我们的机遇。我相信,总有一天有一个人会穿越人群拥抱你...
(抗击新冠肺炎)马来西亚单日新增确诊病例降至3000例以下 中马企业再推疫苗合作 中新社吉隆坡2月9日电 马来西亚卫生部9日通报称,截至当日中午12时,该国过去24小时新增新冠肺炎确诊病例2...
相信现在有很多的朋友们对于房子五证是哪五证都想要了解吧,那么今天小编就来给大家针对房子五证是哪五证进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦 房地产开发商在房地产市场上销售商品房,必须具备...
[CEF_Syslog]首要说一下显性认证,用户必需要履行操作才干持续。 比方按一下指纹传感器,或进行面部或虹膜认证,用户必需要点击一个按钮才干持续。 一切大额付出都要经过显性认证。 当我在测验这个运...