e2dynamo设计与实现 - ecug.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
e2dynamo设计与实现 - ecug.ppt

2008-12-20 E2dynamo设计与实现 Erlang Easy Dynamo similar key-value storage system litaocheng@ /p/e2dynamo Outline Dynamo 介绍 (Introduction)? 关键算法(Algorithms)? E2dynamo 介绍 (Introduction)? 设计 (Design)? 实现 (Implementation)? Roadmap Dynamo : 介绍 概述 key-value存储 (数据大小 1M) 分布式,所有节点角色相同,负载均衡 接口简单,get/put (基于HTTP) 快速响应 (99.9% 请求300ms内完成),大规模并发 (75K query/sec) 构建在一个可信任的网络 高容错,某些节点不可访问时,系统依旧可用 数据一致性,发生冲突时,客户端最后解决 系统易扩展,方便添加节点 Dynamo : 介绍 应用场景 amazon电子平台应用 用户购物车信息 会话(session)管理 商品的内容信息 三种常见应用(根据冲突解决和读取需求划分) 客户端根据逻辑解决冲突(如购物车应用) 时间最新原则选择数据(如session的管理) 高速数据读取(可以作为cache应用) Dynamo :介绍 其他相关联产品 RDBMS关注数据一致性,Dynamo关注数据可用性 Memcached提供cache服务,不保证数据总是可用,数据具有临时性,Dynamo提供持久性存储,快速响应,高可用性 与基于DHT(chord,Pastry)的文件存储产品相比,Dynamo的节点了解系统中大部分节点信息,只需0或1 hop即可到达目标节点,而不需迭代查询 GFS (google file system)包含一个中心化的master存储一些元信息,通过chunk server存储具体的数据。Dynamo没有中心化节点,所有节点完全相同平等 CouchDB提供半结构化数据存储,基于HTTP接口,Dynamo数据为key-value数据形式,保证数据可用性 Dynamo:关键算法 Outline Consistent Hashing 数据备份 数据一致性( Quorum) 数据冲突处理 (Vector Clock) put/get API执行 Ring空间的划分 数据同步(Merkle Tree) Dynamo:关键算法 Consistent Hashing 每个节点拥有一个ID,所有节点组成一个闭合的Ring 根据数据的Key生成对应ID (如md5(key)),此ID映射到节点所组成的Ring上 数据存储在沿Hashing Ring顺时针方向第一个节点上 优点:新的节点插入时,只是影响临近的节点,系统振荡较小 如 (A, B]之间数据存储在B上 B为C的前驱(predecessor), D为C的后继(successor) Dynamo:关键算法 数据备份(Replication) 为提高数据可用性,Dynamo中每个Key对应数据在N个节点上进行备份(通常N=3) 在Ring上,Key顺时针方向N个节点为其Preference List 如果引入Virtual Node机制,List中多个Node可能指向同一物理节点,为了使数据在系统中合理分布,List中每个Node均指向不同的物理节点 (余下部分,Node代表虚拟节点, Physical ? Node代表物理节点) 为了防止某个节点不可用,Preference List中包含Node数大于N Preference List中选取一个Node作为Coordinator(通常为Preference List中第一个节点) Coordinator将数据备份在自身及Preference List中其它N-1个Successor Node上 Dynamo:关键算法 数据备份(Replication) 每个Node负责其前N个Node到自身的Key区间内的数据 如右图,D负责(A, B],(B, C], (C, D] 三个Key区间的数据 Dynamo:关键算法 数据一致性(Quorum) 定义 N :系统中数据的备份数 R:读取操作最小成功数 W:写操作最小成功数 要求:R + W  N 配置 R+W N,保证读操作至少能读取到一个最新数据 读写速度受性能最差的节点影响 R和W越小,系统的响应越快 W越大,数据的一致性,可用性越强 通常:N=3,R=W=2 Dynamo:关键算法 数据冲突处理 (Vector Clock) 在分布式环境中表示对象或事件的逻辑关系 包含多个(name, counter)数据(用Erlang表示:[{atom(), non_n

文档评论(0)

dreamzhangning + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档