论文部分内容阅读
随着互联网应用的迅速发展,全球数据正以爆炸式的速度增长。数据规模扩大的同时,数据的种类也变得更加多样化。传统型数据库虽然能够支持复杂的数据查询和保证数据的一致性,但在扩展性和支持的数据类型上有一定的局限性。为了有效存储和管理海量数据,出现了 NoSQL数据库。NoSQL数据库不同于传统的关系型数据库,它支持灵活的数据模型,并且可以通过增加节点的方式来扩大数据库的容量。HBase是一种典型的分布式、面向列的NoSQL数据库,可以对结构化、半结构化、甚至非结构化的海量数据进行实时的读写和随机访问。HBase按照主键的字节字典序存储每一行记录,因此支持基于主键的快速查询,但在有些应用场景下可能需要对其他非主键字段进行查询。HBase目前并未对非主键建立索引机制,所以非主键的查询需要对HBase整张表进行扫描,查询效率很低。随着HBase被国内外企业、科研机构广泛使用,针对HBase的查询性能优化已经成为大数据存储管理研究中一个热点研究问题。为了进一步加速非主键数据的范围查询,本文提出了非主键索引数据分块管理的方法,将数据管理粒度由一条记录扩大为一个数据块,从而减少建立索引的空间开销和查询索引的时间开销。此外,本文还提出自适应调整数据块的方法,使得数据块的划分与范围查询请求序列的分布规律相接近。基于以上技术方法,本文对HBase非主键数据建立索引,并构建了基于数据分块的分层式索引管理系统,进一步提升了 HBase非主键范围查询的性能。本文的主要工作和贡献如下:(1)针对范围查询,本文提出索引数据分块管理的方法,并使用跳表结构管理数据块的元信息。为了使数据块的划分更加合理,本文提出基于访问热度的自适应分块方法。此外,本文还提出了基于数据块的分层式索引存储模型。实验表明,基于自适应数据块的索引管理能够减少索引查询的时间开销。(2)本文提出一种基于跳表和分层式索引的范围查询方法。同时,为了在缓存层获得较高的命中率,针对各种常见替换策略的不足,本文提出一种基于自适应分块的缓存替换策略AdaHotscore。实验结果显示,在缓存空间较小时AdaHotscore替换算法能很好地预测冷热数据块,并将热数据块缓存到内存,来提升系统的整体性能。(3)基于以上提出的技术方法,本文研究实现了基于数据分块的分层式索引查询系统。实验表明,与HBase系统相比,本系统对非主键的范围查询性能提升了数百倍;与HiBase系统相比,本系统对非主键的范围查询性能提升了 5~6倍。最后通过测试本系统在不同数据集规模和不同节点规模下的表现,证明了本系统具有良好的可扩展性和可用性。