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