提高顺序表性能方法、系统、架构、优化方法及存储装置的制造方法

文档序号:9326977阅读:276来源:国知局
提高顺序表性能方法、系统、架构、优化方法及存储装置的制造方法
【技术领域】
[0001] 本发明涉及分布式信息处理技术领域,特别涉及一种提高分布式顺序表性能的方 法、系统、改进的HBase架构、数据存储装置及内存数据存储结构优化方法。
【背景技术】
[0002] 现有分布式顺序表常用内存数据组织结构有B+树、LSM树等结构。采用B +树结构 的系统将存储在内存和磁盘中的数据构建成一个B+树,根据用户需求将磁盘数据换入换出 内存。米用LSM树结构的系统将数据分为内存和磁盘两个部分,内存中为一个B +树结构, 数据写入操作全部作用在内存的B+树中,内存大小超过阈值之后则将整个内存写入磁盘形 成一个小文件。另外,现有分布式顺序表的内存和磁盘常采用key-value的结构存储数据, 每一列都会存储一个key,造成了 key的冗余存储。
[0003] 现有分布式顺序表存在如下缺点:
[0004] (1)现有分布式顺序表建立在以磁盘存储为主、内存存储为辅的基础上。在内存日 益增大、数据大部分甚至全部存储在内存中时,现有系统的插入性能、查询性能较为低下。
[0005] (2)数据存储存在大量冗余,内存利用率较低。首先,现有分布式顺序表系统没有 对数据的key进行必要的压缩。其次,现有系统常用key-value数据结构存储数据,造成了 key的冗余存储。
[0006] 在进行分布式顺序表内存数据结构优化技术的研究中,发明人发现将现有分布 式顺序表系统的数据组织结构直接应用在大内存甚至全内存下效果并不理想。尤其是系 统插入性能、删除性能、查询性能和内存利用率方面都比较低。通过研究发现,造成这种情 况的主要原因有两点:1、数据组织结构没有对key的公共前缀进行充分压缩,造成系统对 key索引效率低下;2、key-value存储结构中对key进行了多次存储,降低了内存利用率。 HB+-Trie树结构可以一定程度上解决内存中性能低下和内存利用率高的问题,该结构对 key进行根据分段值分成不同的段,对不同的分段进行层次存储。但该结构存在两个显著问 题:1、分段值的选择问题;2、在应用存在热点数据时,该结构出现的数据结构倾斜问题。
[0007] 专利文献1 (公开号为CN104268709 A)公开了一种采用分布式LSM树的RFID系 统设计方法,RFID射频识别技术在近期呈现数据量明显增高的趋势,逐渐形成海量数据,具 备大数据的特征。针对基于分布式LSM树的RFID系统实现,该发明的基本思想是:在分布 式数据平台Hadoop上进行海量RFID数据冗余存储,并代替传统常用的B +树索引结构,使 用一种新型的数据索引结构-LSM树,充分利用其基于内存的处理数据优势,进行海量RFID 数据的实时校验存储。该发明是在Hadoop上使用LSM树索引代替传统的B+树索引以提高 内存的处理优势。但是该发明仍存在着无法充分提升LSM树在内存中的处理性能的问题。

【发明内容】

[0008] 本发明的目的在于,解决上述现有方案在大内存条件下存在的查询、删除、查询性 能低和内存利用率低的问题。发明人在研究现有数据结构和分布式顺序表系统的基础上, 提出了一种提高分布式顺序表性能的方法、系统、改进的HBase架构、数据存储装置及内存 数据存储结构优化方法,所述提高分布式顺序表性能的方法用于对HB+-Trie树结构进行改 进,发明人将改进后的HB +-Trie树结构定义为BHB+-Trie树结构,并采用该BHB+-Trie树结 构对HBase系统的内存数据组织结构进行优化,从而达到提高系统插入性能、删除性能、查 询性能和内存利用率的目的。
[0009] 本发明的提高分布式顺序表性能的方法,对HB+-Trie树结构进行了改进,包括: 步骤1,为HB +-Trie树结构选择最佳分段值,根据所述最佳分段值将键值key分成不同的 段,并对不同的分段进行层次存储从而构成所述HB +-Trie树结构的节点;步骤2,为所述 HB+-Tr i e树结构的每个节点设定一个阈值,节点中数据条数小于相应的阈值则不向下扩 展。
[0010] 本发明的提高分布式顺序表性能的方法,其中,所述步骤1中,所述最佳分段值c 的计算方法如下:
[0012] 其中,Cput为HB +_Trie树结构的最优插入性能的分段值,Cget为HB +_Trie树结构的 最优查询性能分段值,c_为HB +-Trie树结构的内存开销最小的分段值。
[0013] 本发明的提高分布式顺序表性能的方法,其中,所述步骤2中,所述阈值t的计算 方法如下
(2)
[0014] 其中,c为最佳分段值,1为键值key的平均长度,η为总数据条数。
[0015] 本发明的提高分布式顺序表性能的方法,其中,该方法还包括:修改分布式顺序表 的内存数据存储方式key-value,为同一行中的所有列存储一个公共键值key。
[0016] 另外,本发明还提供一种提高分布式顺序表性能的系统,所述系统通过对 HB+-Trie树结构进行改进来提高分布式顺序表性能,包括:分段值选择模块,用于为 HB+-Trie树结构选择最佳分段值,根据所述最佳分段值将键值key分成不同的段,并对不同 的分段进行层次存储从而构成所述HB +-Trie树结构的节点;节点阈值选择模块,用于为所 述HB+-Trie树结构的每个节点设定一个阈值,节点中数据条数小于相应的阈值则不向下扩 展。
[0017] 本发明的提高分布式顺序表性能的系统,其中,所述分段值选择模块中,所述最佳 分段值C的计算方法如下:
[0019] 其中,Cput为HB +_Trie树结构的最优插入性能的分段值,Cget为HB+_Trie树结构 的最优查询性能分段值,c_为HB +-Trie树结构的内存开销最小的分段值。
[0020] 本发明的提高分布式顺序表性能的系统,其中,所述节点阈值选择模块中,所述阈 值t的计算方法如下:
[0022] 其中,c为最佳分段值,1为键值key的平均长度,η为总数据条数。
[0023] 本发明还提供一种改进的HBase架构,其使用上述任一所述方法改进的HB+-Trie 树结构代替HBase在内存中的B+树结构。
[0024] 此外,本发明还提供一种数据存储装置,采用包括上述任意一种提高分布式顺序 表性能的系统。
[0025] 此外,本发明还提供一种内存数据存储结构优化方法,包括上述任意一种提高分 布式顺序表性能的方法。
[0026] 本发明与现有HB+-Trie树相比,能够自动选择分段值;且为防止数据倾斜,为每个 节点设定一个阈值,节点中数据条数小于阈值不向下扩展。
[0027] 本发明总的技术效果在于:
[0028] (1)基于对HB+-Trie树结构的改进,提出了 BHB+-Trie树结构,其能够自动选择树 结构的最优分段值,使得系统插入性能、查询性能和系统内存开销总体达到最佳。
[0029] (2)BHB+-Trie树结构能够自动选择节点数据条数的阈值,减少了热点数据对系统 性能的影响。
[0030] (3)提高系统插入性能、删除性能和查询性能。
[0031] (4)提尚内存利用率。
【附图说明】
[0032] 图1是本发明的提高分布式顺序表性能的方法的流程图。
[0033] 图2的(A)、(B)、(C)分别是分布式顺序表中,分段值与插入性能、分段值与查询性 能、分段值与内存开销之间关系图。
[0034] 图3是采用本发明的提高分布式顺序表性能的方法对HB+-Trie树结构进行改进 后的图,即BHB +-Trie树结构。
[0035] 图4是本发明的实施例的对分布式顺序表的key-value内存数据存储方式进行修 改的示意图。
[0036] 图5(A)是现有HBase架构图,图5(B)是本发明的改进后的HBase架构图。
[0037] 图6是本发明的提高分布式顺序表性能的系统的构成图。
[0038] 图7是本发明的数据存储装置的示意图。
[0039] 附图标记说明
[0040] 1提尚分布式顺序表性能的系统
[0041] 11分段值选择模块
[0042] 12节点阈值选择模块
[0043] 2数据存储装置
【具体实施方式】
[0044] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的 提高分布式顺序表性能的方法、系统、改进的HBase架构、数据存储装置及内存数据存储结 构优化方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发 明,并不用于限定本发明。
[0045] 本发明的提高分布式顺序表性能的方法,需要使用能够体现应用数据特性的实验 数据对分布式顺序表系统进行测试,系统根据测试结果基于HB+-Trie树结构选择最佳的分 段值和节点数据条数阈值。本发明的提高分布式顺序表性能的方法的流程图如图1所示, 本发明的提高分布式顺序表性能的方法,通过对HB +-Trie树结构进行改进来提高分布式顺 序表性能,改进后的HB+-Trie树结构被定义为BHB +-Trie树结构,所述方法包括:步骤1,为 现有HB+-Trie树结构选择最佳分段值,根据所述最佳分段值将键值key分成不同的段,并 对不同的分段进行层次存储从而构成所述HB +-Trie树结构的节点;步骤2,为所述每个节 点设定一个阈值,节点中数据条数小于相应的阈值则不向下扩展。
[0046] 首先,对步骤1进行具体说明。发明人使用TPC-H数据研究了分段值与插入性能、 查询性能和内存开销之间的关系,研究结果分别如图2(A)、(B)、(C)所示。研究结果表明, 存在不同的分段值分别使得系统插入性能最高、查询性能最高和内存开销最小。假设使得 系统插入性能最优的分段值为C put,使得查询性能最优的分段值为c_,使得系统内存开销
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1