论文部分内容阅读
随着互联网应用的规模化、普及化,计算机技术的不断发展,互联网产生的数据正在高速增长且在可见的未来内日益庞大。针对海量数据的存储、查询和挖掘处理成为了目前的热点问题。Google公司公开发表的三篇云计算领域的经典论文后,人们开始重新思考海量数据的存储方式,非关系型数据存储系统开始逐渐成为大数据时代数据存储的主流。HBase是Apache社区Hadoop项目下参考BigTable实现的一个开源子项目,是一个典型的基于列族的非关系型数据库。在实际应用中,HBase可以高效支持以主键为条件的查询请求,在面对以非主键为条件的查询请求时则需要对全表进行扫描,效率低下,难以满足一些需要快速响应的应用场景。在传统关系数据库领域,面对这样的问题,通常会借助索引来解决。为了提高查询响应时间,减少查询开销,人们开始研究在HBase上建立非主键索引的方法。本文的主要研究工作分为以下三个部分:(1)在分析顺序索引存储模型与哈希索引存储模型的基础上,面向遵循着80/20法则的特定应用场景,借鉴层次化存储体系结构思想,提出一种支持HBase索引存储的分层式索引存储模型。该模型主要分为两层:持久存储层,用来存储HBase用户表的所有索引数据;索引缓存层,用来存储部分被频繁访问的索引数据,作为持久存储层的缓存以加速查询。(2)研究实现分层式索引存储管理机制,并通过设计使分层式索引存储系统具有良好的可扩展性和高可用性。此外,针对海量数据场景下使用LRU的不足,提出一种对热数据敏感的缓存替换策略,该策略使用指数平滑的方法来有效地预测索引热度。(3)研究实现基于分层式索引系统的快速数据查询方法,主要支持单值查询和范围查询。并针对范围查询中存在通信开销较大等问题,提出对范围查询的改进方法。本文通过与LRU的对比实验,验证了对热数据敏感的缓存替换策略的有效性;通过扩展性实验分析验证了分层式索引系统的数据可扩展性和节点可扩展性;并通过与同类索引系统的对比,验证了分层式索引系统对HBase非主键查询带来的性能提升。