分布式Key Value Store.pdfVIP

  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文档。上传文档
查看更多
分布式 Key Value Store 漫谈 V1.0 广州技术沙龙(09/08/08) Tim Yang / Agenda • Key value store 漫谈 – MySQL / Sharding / K/V store – K/V store性能比较 • Dynamo 原理及借鉴思想 – Consistent hashing – Quorum (NRW) – Vector clock – Virtual node • 其他话题 说明 • 不复述众所周知的资料 – 不是Key value store知识大全 • 详解值得讲解或有实践体会的观点 场景 • 假定场景为一IM系统,数据存储包括 – 1. 用户表(user) • {id, nickname, avatar, mood} – 2. 用户消息资料(vcard) • {id, nickname, gender, age, location…} – 好友表(roster) • {[id, subtype, nickname, avatar, remark],[id2,…],…} 单库单表时代 • 最初解决方案 – 单库单表, MySQL • 随着用户增长,将会出现的问题 – 查询压力过大 • 通常的解决方案 –MySQL replication及主从分离 单库单表时代 • 用户数会继续增大,超出单表写的负 载 • Web 2.0, UGC, UCD的趋势,写请求 增大,接近读请求 – 比如读feed, 会有 “like” 等交互需要写 • 单表数据库出现瓶颈,读写效率过低 分库分表时代 • 将用户按ID(或其他 字段)分片到不同数 据库 • 通常按取模算法 hash() mod n • 解决了读写压力问 题 但是,Shard ≠ 架构设计 • 架构及程序人员的精力消耗在 切分上 • 每一个新的项目都是重复劳动 不眠夜-resharding 通知:我们需要21:00-7:00停机维护 • 有办法避免吗? Sharding framework • 框架,如hivedb – 隔离分库的逻辑 – 期望对程序透明,和单库方式编程 • 没有非常成功的框架 – 数据存储已经类似key/value – 期望用SQL方式来用,架构矛盾 • 框架之路也失败了,为什么? 分库分表过时了 • 无需继续深入了解那些切分的奇巧淫技 • nosql! Key value时代 • 我们需要的是一个分布式,自扩展 的storage • Web应用数据都非常适合 key/value形式 –User, vcard, roster 数据 • {user_id: user_data} 百家争鸣 • Berkeley DB(C), MemcacheDB(C) • Bigtable, Hbase(Java), Hypertable(C++, baidu) • Cassandra(Java) • CouchDB(Erlang) • Dynamo(Java), Kai/Dynomite/E2dynamo(Erlang) • MongDB • PNUTS • Redis(C) • Tokyo

文档评论(0)

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

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

1亿VIP精品文档

相关文档