多机热备份内存数据库的设计与实现

多机热备份内存数据库的设计与实现

论文摘要

本文是基于企业客户对数据库的实时反应性能及成本要求压力的背景下完成的快捷内存数据库的自主研发。传统的磁盘数据库就是把所有的数据都存放在磁盘上。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用时间的影响,当数据量很大,操作频繁时,会对实时反应的性能产生影响。市场上商用内存数据库虽然各个方面都比较完善,但是存在授权费用昂贵,内存结构不透明等问题,不能够采用“直接存取内容”这种最高效的方法。在ICT行业中,还需要功能相对简单,对内存的组织灵活高效,开发扩展好,以及成本低廉的小型内存数据库,这种需求是本文研究的出发点。近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,这些因素都有利地支持着本文所提软件系统的实施。内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。本文研究了内存数据库的各种技术,最终基于一致性哈希,Quorum NRW,Vector clock算法实现了一个基于C/S结构的内存数据库。本文的内存数据库采用java语言来实现。Java语言内置的多线程特性,对数据库实现大的并发量提供了很好的支持。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景
  • 1.2 研究目的及意义
  • 1.3 国内外研究现状
  • 1.4 本文研究内容
  • 1.5 论文章节安排
  • 第二章 内存数据库的主要技术
  • 2.1 基础理论
  • 2.1.1 CAP
  • 2.1.2 最终一致性
  • 2.1.3 BASE
  • 2.1.4 I/O的五分钟法则
  • 2.1.5 不要删除数据
  • 2.1.6 RAM是硬盘,硬盘是磁带
  • 2.1.7 Amdahl定律和Gustafson定律
  • 2.2 主要算法
  • 2.2.1 一致性哈希
  • 2.2.2 Quorum NRW
  • 2.2.3 Vector clock
  • 2.3 缓存策略
  • 2.3.1 MemCached
  • 2.4 内存数据库架构
  • 2.4.1 Master/slave
  • 2.4.2 Multi-master
  • 2.4.3 Two-phase commit(2PC)
  • 2.4.4 Three-phase commit (3PC)
  • 第三章 多机热备份内存数据库的需求分析
  • 3.1 需求描述
  • 3.2 可行性分析
  • 3.3 功能需求分析
  • 3.3.1 备份
  • 3.3.2 加载
  • 3.3.3 数据一致性同步
  • 3.3.4 数据库架构
  • 3.4 性能分析
  • 3.5 系统环境分析
  • 3.5.1 硬件环境
  • 3.5.2 软件环境
  • 3.6 本章小结
  • 第四章 多机热备份内存数据库的设计
  • 4.1 项目背景
  • 4.2 整体架构
  • 4.3 内部模块
  • 4.4 状态机
  • 4.5 数据库启动流程
  • 4.5.1 同组所有服务器同时启动
  • 4.5.2 一个服务器启动时,其他服务器已经在Ready状态
  • 第五章 多机热备份内存数据库的实现
  • 5.1 系统功能模块实现
  • 5.1.1 MessageConnector
  • 5.1.2 Storage
  • 5.1.3 Synchronizer
  • 5.1.4 ParallelResponse
  • 5.1.5 Statemachine
  • 5.2 系统接口实现
  • 5.3 系统性能实现
  • 5.4 本章小结
  • 第六章 系统测试
  • 6.1 软件测试环境
  • 6.2 软件性能测试
  • 6.3 测试结果分析
  • 第七章 总结
  • 7.1 总结
  • 7.2 展望
  • 致谢
  • 参考文献
  • 相关论文文献

    标签:;  ;  ;  

    多机热备份内存数据库的设计与实现
    下载Doc文档

    猜你喜欢