一种B+树的存取方法、装置和计算机可读存储介质制造方法及图纸

技术编号:24572351 阅读:17 留言:0更新日期:2020-06-20 23:54
本发明专利技术实施例公开了一种B+树的存取方法、装置和介质,获取到B+树创建指令时,判断是否存在映射到DRAM内存的空闲的底层树文件;若是,则将B+树的底层数据存储至底层树文件。若否,则新建一个目标底层数文件,并将目标底层树文件映射至DRAM内存,以便于将B+树的底层数据存储至目标底层树文件中。当B+树的层数大于或等于预设阈值时,则将B+树中层数大于或等于预设阈值的数据存储至预先设定的存储区域。基于B+树的数据结构,每次数据的读取都需要从底层数据访问,通过将底层文件存储在映射到DRAM内存的空闲的底层树文件,有效的提升了底层数据的访问效率。将其它数据存储在除DRAM内存外的存储空间中,提升了DRAM内存资源的利用率。

A B + tree access method, device and computer readable storage medium

【技术实现步骤摘要】
一种B+树的存取方法、装置和计算机可读存储介质
本专利技术涉及数据存储
,特别是涉及一种B+树的存取方法、装置和计算机可读存储介质。
技术介绍
在全闪存阵列存储系统中,由于其结构的特殊性,大量采用B+树结构。例如,全闪存阵列普遍采用自动精简的容量分配方式(thinprovisioning),其卷的逻辑地址与卷在磁盘阵列(RedundantArraysofIndependentDisks,RAID)上的物理地址不再是线性对应关系,而变成了近似随机映射的关系。为了管理这种映射关系,采用B+树来保存从卷逻辑地址到物理地址的映射,并且采用B+树来保存物理地址到逻辑地址的逆映射。全闪存阵列的重删功能,采用B+树来保存数据块HASH值到物理地址的映射。动态随机存取存储器(DynamicRandomAccessMemory,DRAM)是一种较为常见的系统内存。由于DRAM内存是较为昂贵的部件,因此存储系统中通常只配置较少数量的DRAM内存以降低成本。现有技术中,B+树的数据通常保存在固态硬盘(SolidStateDrives,SSD)中。SSD盘中的数据必须读到内存中才能进行读写访问,而SSD读写的IO路径比较长,速度慢。B+树结构的频繁的读入及换出内存,会带来很大的CPU开销。可见,如何提升B+树的读写效率,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种B+树的存取方法、装置和计算机可读存储介质,可以提升B+树的读写效率。为解决上述技术问题,本专利技术实施例提供一种B+树的存取方法,包括:获取到B+树创建指令时,判断是否存在映射到DRAM内存的空闲的底层树文件;若是,则将所述B+树的底层数据存储至所述底层树文件;若否,则新建一个目标底层数文件,并将所述目标底层树文件映射至DRAM内存,以便于将所述B+树的底层数据存储至所述目标底层树文件中;当所述B+树的层数大于或等于预设阈值时,则将所述B+树中层数大于或等于所述预设阈值的数据存储至预先设定的存储区域。可选地,所述B+树对应有第一层级、第二层级和第三层级;其中,第一层级的数据作为底层数据;相应的,所述当所述B+树的层数大于或等于预设阈值时,则将所述B+树中大于或等于所述预设阈值的数据存储至预先设定的存储区域包括:将所述B+树的第二层级的数据存储至DCPMM内存中;将所述B+树的第三层级的数据存储至预设的硬盘中。可选地,在所述获取到B+树创建指令时,判断是否存在映射到内存的底层树文件之前还包括:将所述DCPMM内存的最小读写粒度作为所述B+树的节点容量。可选地,所述将所述B+树的底层数据存储至所述底层树文件包括:将所述B+树的底层数据按照所述节点容量向所述底层树文件中存储各节点数据;其中,每个节点数据的键值对中存储有下一层级节点的偏移地址。可选地,还包括:当获取到数据查询指令时,依据所述数据查询指令中携带的逻辑地址,确定出根节点;根据所述根节点中包含的偏移地址,确定出叶子节点;并读取所述叶子节点对应的数据。可选地,还包括:当获取到数据修改指令时,判断所述DRAM内存中是否存在与所述数据修改指令中携带的节点标识相匹配的节点数据;若是,则依据所述数据修改指令中携带待替换数据,对所述节点数据进行修改,并对修改后的节点数据设置脏标志;若否,则判断所述DCPMM内存中是否存在与所述数据修改指令中携带的节点标识相匹配的节点数据;当所述DCPMM内存中存在与所述数据修改指令中携带的节点标识相匹配的节点数据时,则依据所述数据修改指令中携带待替换数据,对所述节点数据进行修改;当所述DCPMM内存中不存在与所述数据修改指令中携带的节点标识相匹配的节点数据时,则将所述硬盘中与所述数据修改指令中携带的节点标识相匹配的节点数据读取至所述DRAM内存中;依据所述数据修改指令中携带待替换数据,在所述DRAM内存中完成对所述节点数据的修改,并对修改后的节点数据设置脏标志。可选地,在所述将所述B+树的底层数据存储至所述底层树文件之后还包括:按照预设的周期时间将映射至DRAM内存中设置有脏标志的数据迁移至所述DCPMM内存中。本专利技术实施例还提供了一种B+树的存取装置,包括第一判断单元、第一存储单元、创建单元和第二存储单元;所述第一判断单元,用于获取到B+树创建指令时,判断是否存在映射到DRAM内存的空闲的底层树文件;若是,则触发所述第一存储单元;若否,则触发所述创建单元;所述第一存储单元,用于将所述B+树的底层数据存储至所述底层树文件;所述创建单元,用于新建一个目标底层数文件,并将所述目标底层树文件映射至DRAM内存,以便于将所述B+树的底层数据存储至所述目标底层树文件中;所述第二存储单元,用于当所述B+树的层数大于或等于预设阈值时,则将所述B+树中层数大于或等于所述预设阈值的数据存储至预先设定的存储区域。可选地,所述B+树对应有第一层级、第二层级和第三层级;其中,第一层级的数据作为底层数据;相应的,所述第二存储单元具体用于将所述B+树的第二层级的数据存储至DCPMM内存中;将所述B+树的第三层级的数据存储至预设的硬盘中。可选地,还包括作为单元;所述作为单元,用于将所述DCPMM内存的最小读写粒度作为所述B+树的节点容量。可选地,所述第一存储单元具体用于将所述B+树的底层数据按照所述节点容量向所述底层树文件中存储各节点数据;其中,每个节点数据的键值对中存储有下一层级节点的偏移地址。可选地,还包括查询单元、确定单元和读取单元;所述查询单元,用于当获取到数据查询指令时,依据所述数据查询指令中携带的逻辑地址,确定出根节点;所述确定单元,用于根据所述根节点中包含的偏移地址,确定出叶子节点;所述读取单元,用于读取所述叶子节点对应的数据。可选地,还包括第二判断单元、修改单元、设置单元、第三判断单元和读取单元;所述第二判断单元,用于当获取到数据修改指令时,判断所述DRAM内存中是否存在与所述数据修改指令中携带的节点标识相匹配的节点数据;若是,则触发所述修改单元;若否,则触发所述第三判断单元;所述修改单元,用于依据所述数据修改指令中携带待替换数据,对所述节点数据进行修改,所述设置单元,用于对修改后的节点数据设置脏标志;所述第三判断单元判断所述DCPMM内存中是否存在与所述数据修改指令中携带的节点标识相匹配的节点数据;所述修改单元还用于当所述DCPMM内存中存在与所述数据修改指令中携带的节点标识相匹配的节点数据时,则依据所述数据修改指令中携带待替换数据,对所述节点数据进行修改;所述读取单元,用于当所述DCPMM内存中不存在与所述数据修改指令中携带的节点标识相匹配的节点数据时,则将所述硬盘中与所述数据修改指令中携带的节点标识相匹配的节点数据读取至所述D本文档来自技高网...

【技术保护点】
1.一种B+树的存取方法,其特征在于,包括:/n获取到B+树创建指令时,判断是否存在映射到DRAM内存的空闲的底层树文件;/n若是,则将所述B+树的底层数据存储至所述底层树文件;/n若否,则新建一个目标底层数文件,并将所述目标底层树文件映射至DRAM内存,以便于将所述B+树的底层数据存储至所述目标底层树文件中;/n当所述B+树的层数大于或等于预设阈值时,则将所述B+树中层数大于或等于所述预设阈值的数据存储至预先设定的存储区域。/n

【技术特征摘要】
1.一种B+树的存取方法,其特征在于,包括:
获取到B+树创建指令时,判断是否存在映射到DRAM内存的空闲的底层树文件;
若是,则将所述B+树的底层数据存储至所述底层树文件;
若否,则新建一个目标底层数文件,并将所述目标底层树文件映射至DRAM内存,以便于将所述B+树的底层数据存储至所述目标底层树文件中;
当所述B+树的层数大于或等于预设阈值时,则将所述B+树中层数大于或等于所述预设阈值的数据存储至预先设定的存储区域。


2.根据权利要求1所述的方法,其特征在于,所述B+树对应有第一层级、第二层级和第三层级;其中,第一层级的数据作为底层数据;
相应的,所述当所述B+树的层数大于或等于预设阈值时,则将所述B+树中大于或等于所述预设阈值的数据存储至预先设定的存储区域包括:
将所述B+树的第二层级的数据存储至DCPMM内存中;
将所述B+树的第三层级的数据存储至预设的硬盘中。


3.根据权利要求2所述的方法,其特征在于,在所述获取到B+树创建指令时,判断是否存在映射到内存的底层树文件之前还包括:
将所述DCPMM内存的最小读写粒度作为所述B+树的节点容量。


4.根据权利要求3所述的方法,其特征在于,所述将所述B+树的底层数据存储至所述底层树文件包括:
将所述B+树的底层数据按照所述节点容量向所述底层树文件中存储各节点数据;其中,每个节点数据的键值对中存储有下一层级节点的偏移地址。


5.根据权利要求4所述的方法,其特征在于,还包括:
当获取到数据查询指令时,依据所述数据查询指令中携带的逻辑地址,确定出根节点;
根据所述根节点中包含的偏移地址,确定出叶子节点;并读取所述叶子节点对应的数据。


6.根据权利要求2所述的方法,其特征在于,还包括:
当获取到数据修改指令时,判断所述DRAM内存中是否存在与所述数据修改指令中携带的节点标识相匹配的节点数据;
若是,则依据所述数据修改指令中携带待替换数据,对所述节点数据进行修改,并对修改...

【专利技术属性】
技术研发人员:来炜国刘志勇
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1