论文部分内容阅读
随着互联网和分布式技术的发展,传统关系型数据库已经不能满足现有应用对大数据存储、高并发、高吞吐量、低延迟方面的要求,分布式顺序表应运而生。现有分布式顺序表都是以磁盘存储为主,内存存储为辅,系统设计着重通过减少磁盘I/O次数达到提高系统性能的目的。随着内存行业的不断发展,单位内存价格迅速降低,越来越多公司可以承担起更大内存的系统,数据可以大部分甚至全部装入内存,使得内存计算成为可能。在以内存存储为主的情况下,原有分布式顺序表主要面临以下几个问题:(1)如何有效组织内存中数据,提高系统CURD性能。(2)如何合理使用内存,提高系统内存使用效率。这两个问题是制约分布式顺序表在大内存情况下发展的重要瓶颈。 针对分布式顺序表遇到的上述问题,本文在研究现有系统常用数据组织和存储结构的基础上,对已有数据结构进行优化,提出一个性能更好、内存空间使用效率更高的BHB+-Trie树结构,并在Apache HBase上实现和验证。通过基本数据结构测试和HBase中优化测试两个方面验证BHB+-Trie树在内存中的性能是否达到预期目标。本文的具体贡献包括如下两个方面: (1)设计BHB+-Trie树结构,并通过实验验证其性能。本文研究了现有分布式顺序表内存中常用的数据组织结构B+树、LSM树和HB+-Trie树。通过对比选择HB+-Trie树进行重点研究,发现有些数据场景会导致HB+-Trie树发生数据倾斜,严重影响系统性能。为此,本文在HB+-Trie树基础之上提出BHB+-Trie树解决方案,很好的解决了数据倾斜对系统性能产生的影响。实验结果显示,BHB+-Trie树解决方案在普通数据情况下的性能与HB+-Trie树相当,但在数据倾斜的情况下BHB+-Trie树插入性能提高13℃、查询性能提高15℃。 (2)使用BHB+-Trie树结构对Apache HBase系统内存结构进行优化,并通过实验验证优化效果。本文对HBase的优化方案包括整体架构设计、内存数据组织结构优化和内存数据存储结构优化,优化方案与HBase原有机制完全兼容。本文将HBase原有内存结构优化为BHB+-Trie树以提高内存插入查询性能,并通过重新设计内存部分数据存储结构提高内存使用效率。实验结果表明,优化后方案通过对内存数据进行有效组织使得插入性能提高16℃、查询性能提高17℃、内存利用率提高19℃,达到了预期目的。