论文部分内容阅读
内存数据库(MMDB)是近年来发展较为迅速的一种数据技术。由于目前互联网技术以及大数据的发展,对于数据的响应速率提出了越来越高的要求,传统的磁盘数据库已经无法满足一些新型业务的要求,同时硬件技术的发展降低了内存的制造成本,为内存数据库提供了可行性。目前已经研发出了许多以内存数据库为基础的NoSQL数据库,并发挥着良好的作用。NoSQL数据库的优点在于其快速的读写能力以及强大的扩展性,非常适合于大数据处理以及分布式系统。但同时NoSQL数据库也存在一些缺陷,NoSQL弱化了事务的ACID特性,所以无法支持像关系型数据库那样强大的事务特性。而大部分NoSQL数据库都是基于KV模式,所以范围查询效率不高。此外各大NoSQL数据库采用的语法不同,并且不支持SQL语言。基于上述情况,本文将围绕内存数据库的一些关键技术展开研究,主要研究数据库的索引技术、事务及并发控制技术,并将此应用于关系型数据库。本文的具体研究工作如下:(1)分析对比主流的数据库索引技术,受字符串后缀数组的启发,提出一种基于后缀数组的字符串B+树索引,该索引在现有的B+树架构上引入了字符串后缀数组,很大程度上提高带有前后百分号的字符串模糊匹配效率,而在传统的关系型数据库中,该操作通常都是基于全表遍历。(2)针对关系型数据库在处理树状数据方面的缺陷,提出一种Hash索引和二叉树索引相结合的HB树索引,该索引具有很高的向上遍历和向下遍历效率,可以迅速的访问树状数据中的各个节点。同时该索引可以与数据库中的其他索引相结合从而进一步提高查询效率,该索引技术提高了数据库在文件系统当中的性能。(3)在事务与并发控制方面利用数据库中现有的回滚区,提出一种回滚区与时间戳相结合的并发控制策略。该策略可以使读操作不需要加锁,从而提高数据库的读并发性,并简化了加锁策略。同时基于该策略实现了以内存块为单位的异步增量持久化技术,提高了数据库的持久化性能。(4)在研究数据库技术的基础上,设计并且开发了一款小型的内存数据库,该数据库采用C++语言编写,目前正在进一步的测试与优化中。