分布式持久化缓存系统的分析与实现-analysis and implementation of distributed persistent cache system.docxVIP

分布式持久化缓存系统的分析与实现-analysis and implementation of distributed persistent cache system.docx

  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文档。上传文档
查看更多
分布式持久化缓存系统的分析与实现-analysis and implementation of distributed persistent cache system

目录中文摘要I英文摘要 II1 绪论 11.1 选题背景及意义 11.1.1 问题的提出 11.1.2 研究的意义 21.2 缓存系统现状 21.3 本文的主要工作 41.4 论文的组织结构 52 持久化缓存模型 6LSM 原理6多组件 LSM-Tree 模型72.3 分层的多组件 LSM-Tree 模型92.4 模型优化 92.4.1 布隆过滤器 102.4.2 异步 122.4.3 缓存 122.5 本章小结 123 分布式系统的扩展性及关键技术 133.1 可扩展性 133.2 数据一致性 143.3 同步复制架构 15Master-Slaves 同步复制架构 16Master-Master 同步复制架构 16Master-Slaves-Slaves 级联同步复制架构 17Master-Master-Slaves 级联同步复制架构 183.4 数据切分 193.5 可用性 213.6 本章小结 214 分布式持久化缓存系统的实现 22Merge-Dump 存储引擎22SSDB 系统架构24MemTable 25Log 25SSTable 26SSDB 性能优化 304.3.1 归并排序 304.3.2 缓存机制 314.3.3 布隆过滤器 32SSDB 读写流程324.5 分布式实现 334.5.1 一致性哈希 334.5.2 冗余备份 364.5.3 版本控制 394.6 性能测试 424.7 本章小结 445 总结与展望 45致谢 47参考文献 48附录 51.作者在攻读学位期间发表的论文目录:51.作者在攻读学位期间取得的科研成果目录:511 绪论1.1 选题背景及意义问题的提出随着信息技术的发展,数据量越来越大,大数据(Big Data)一词也越来越受 关注 。 国 际 数 据 公 司 的 研 究 结 果 表 明 , 2011 年的 数据 量 已 高达 1.82ZB(1ZB=2^30PB)[1]。数据量的爆炸式增长以及数据的集中访问使得应用程序对后 台性能的要求越来越高,特别是对搜索、云存储等应用服务来说提出了巨大的挑 战。在大数据时代,人们总希望存在一个 Key-value 存储机制,像 HashMap 一样 在内存中处理大量的 Key-value 对,以便提高数据的查找、修改速度。为此,NoSQL[2] 技术得到了长足发展。最近几年,业界不断涌现出很多各种各样的 NoSQL 产品: Memcached[3]、Redis[4]、LevelDB[5]等,它们在很多时候都是将数据全部存储在内 存中作为关系数据库的前端缓存使用的,由于关系数据库在 SQL 语句解析、硬盘 IO 方面有很大的性能损失,而通过缓存系统就能将数据库的查询结果缓存到内存 中,从而可以直接从内存中访问数据,降低数据库的访问频率,提高动态网站服 务的响应速度[6]。但是传统的缓存系统为了追求更高的性能大都是基于内存存储 的,数据的持久化功能并不完善,因而系统会受到内存容量的限制,并且在系统 宕机时会导致数据全部丢失,无法恢复。比如很多公司都曾使用过 MySQL[7]配合 内存缓存系统(如 Memcached)这样的架构来应对海量数据规模应用,通过缓存 系统将经常访问的数据缓存到内存来提升响应速度,但随着业务的扩展和访问量 的持续增长,遇到的问题也越来越多,基本上体现在以下四个方面:① MySQL 需要不断进行拆库拆表,Memcached 也需要不断跟着扩容,扩容和 维护工作占据大量开发时间,同时在缓存系统扩容后,原来的缓存全部失效[8];② Memcached 内存容量有限,一旦内存容量不足,系统将根据 LRU[9]算法丢 弃旧数据,导致系统命中率低,从而大量的访问直接穿透数据库服务器,造成 MySQL 无法支撑。虽然在这点上其他的产品(如 Redis)通过虚拟内存技术做了 改进,但是当数据量很大时依然需要频繁的与磁盘进行数据交互,导致系统性能 大幅度下降;③ 数据都在内存中,一旦系统宕机,数据将全部丢失,无法恢复;④ 对于大多数网站应用来说,它们都有一个共同的特点就是只有一小部分数 据是经常被访问的,因此如果将所有的数据都缓存起来,很明显会使得内存的利 用率降低,造成内存的浪费。从以上几个问题可以看出,Memcached 在数据持久化、系统容灾等问题上并不 能很好的完全满足当今的海量数据规模应用。由于大部分缓存系统都基本上存在着上面的问题,系统的成本较高且易受内存容量的限制,同时可用性、可扩展性、容灾等功能都非常的薄弱,因此在高可用、高可扩展、高可靠的系统应用环境中, 系统的分布式研究、缓存数据的持久化存储显得尤为重要。研究的意义持久化缓存系统支持数据的持

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档