一种数据的存储管理方法及装置制造方法

文档序号:6500100阅读:137来源:国知局
一种数据的存储管理方法及装置制造方法
【专利摘要】本发明实施例公开了一种数据的存储管理方法及装置,其中,所述方法包括:建立根节点及其管理的索引节点;基于根节点及其管理的索引节点确定待存储数据的哈希值;根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址;在确定的存储地址下存储待存储数据,并将待存储数据的数据描述信息记录到目标索引节点中。本发明采用根节点及其管理的索引节点并结合哈希处理的方式对数据进行存储管理,可较为简单地实现对已存储数据的存储管理,方便后续的查询操作。
【专利说明】一种数据的存储管理方法及装置
【技术领域】
[0001 ] 本发明涉及数据存储管理领域,尤其涉及一种数据的存储管理方法及装置。
【背景技术】
[0002]现有技术在存储普通的集合类型数据时,大多通过第三方存储系统托管存储,第三方存储系统会将待存储的数据按固定顺序打包存储。在用户需要查询或者使用时,第三方存储系统会返回全部集合数据。
[0003]第三方存储系统可以提供额外查询程序以供用户查询已存储的数据,这种方式增加了对存储系统的逻辑要求,一定程度上增加了存储系统的成本。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种数据的存储管理方法及装置,采用根节点及其管理的索引节点并结合哈希处理的方式对数据进行存储管理,可较为简单地实现对已存储数据的存储管理,方便后续的查询操作。
[0005]为了解决上述技术问题,本发明实施例提供了一种数据的存储管理方法,包括:
[0006]建立根节点及其管理的索引节点,所述根节点中包括各个索引节点关联的存储域信息,所述存储域信息包括存储域的起始地址和标识范围信息;
[0007]根据根节点及其管理的索引节点对待存储数据进行存储管理,其具体包括:
[0008]基于根节点及其管理的索引节点确定待存储数据的哈希值;
[0009]根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址;
[0010]在确定的存储地址下存储所述待存储数据,并将所述待存储数据的数据描述信息记录到所述目标索引节点中。
[0011]相应地,本发明实施例还提供了一种数据的存储管理装置,包括:
[0012]建立模块,用于建立根节点及其管理的索引节点,所述根节点中包括各个索引节点关联的存储域信息,所述存储域信息包括存储域的起始地址和标识范围信息;
[0013]管理模块,用于根据根节点及其管理的索引节点对待存储数据进行存储管理;所述管理模块具体包括:
[0014]计算单元,用于基于根节点及其管理的索引节点确定待存储数据的哈希值;
[0015]确定单元,用于根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址;
[0016]存储管理单元,用于在确定的存储地址下存储所述待存储数据,并将所述待存储数据的数据描述信息记录到所述目标索引节点中。
[0017]实施本发明实施例,具有如下有益效果:
[0018]本发明采用根节点及其管理的索引节点并结合哈希处理的方式对数据进行存储管理,可较为简单地实现对已存储数据的存储管理,方便后续的查询操作。【专利附图】

【附图说明】
[0019]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本发明的数据的存储管理方法的第一实施例流程示意图;
[0021]图2是本发明实施例的存储管理形式的其中一种具体结构示意图;
[0022]图3是本发明的对待存储数据进行存储管理的方法的流程示意图;
[0023]图4是本发明的待存储数据存储以及描述信息记录的方法的流程示意图;
[0024]图5是本发明的数据的存储管理方法的第二实施例流程示意图;
[0025]图6是本发明实施例的存储管理方法的第三实施例流程示意图;
[0026]图7是本发明实施例的索引节点分裂后的存储管理形式示意图;
[0027]图8是本发明实施例的存储管理方法的第四实施例流程示意图;
[0028]图9是本发明实施例的根节点扩充后的存储管理形式示意图;
[0029]图10是本发明实施例的一种数据的存储管理装置的结构组成示意图;
[0030]图11是本发明实施例的另一种数据的存储管理装置的结构组成示意图;
[0031]图12是本发明实施例的再一种数据的存储管理装置的结构组成示意图。
【具体实施方式】
[0032]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]图1是本发明的数据的存储管理方法的第一实施例流程示意图;本发明实施例所述的方法可应用于如基于容器集合类型数据存储的系统等存储系统中,具体的,本实施例的所述方法包括:
[0034]SlOl:建立根节点及其管理的索引节点,所述根节点中包括各个索引节点关联的存储域信息,所述存储域信息包括存储域的起始地址和标识范围信息;
[0035]对于需要存储的数据,可以创建一个包括根节点和索引节点的文件,并创建用于存储数据的存储域,每个存储域可以包括预定数量的存储槽位。所述根节点及索引节点所管理的存储数据的条数对应于存储域中存储槽位的数量。所述存储域的起始地址和标识范围信息在创建存储域时获取,其中的标识范围信息为相应存储域中存储的数据的序列标识。
[0036]如图2所示,为本发明实施例的存储管理形式的其中一种具体结构示意图。根节点对1000个槽位,将分配的存储域设置为5个域,为根节点管理的每一个索引节点设置为管理20条数据。
[0037]根节点中的存储域信息包括“域I”等索引节点关联的存储域的起始地址,“0-200等存储域标识范围信息,所述根节点中还可以记录其所管理的数据集合的类型等信息。其中根节点中的“域1、域2 ”等用于表示每一个索引节点的起始地址,而根节点中的“ 0-200 ”等则用于表示其管理的数据的序列标识,在对各条待存储数据进行哈希处理后,得到的哈希值在0-200内的待存储数据存储到域I中。
[0038]索引节点则用于记录存储数据的数据描述信息,在某一待存储数据存储到存储域后,需要在该存储域对应的索引节点中记录该数据的数据描述信息以便于后续查找时使用。数据描述信息可以包括存储数据的存储偏移地址offset,包括keyialue对以及解决哈希冲突的hash next的哈希查找信息,哈希查找信息具体包括存储数据的关键字长度keylen,存储数据的值长度value len,存储数据的哈希冲突链表偏移首地址hash next等信肩、O
[0039]存储域中则包括多个存储槽位,用于存储对应的数据的关键字key、值value的具体数据,以及哈希冲突的链表相关数据。
[0040]需要说明的是,上述图2对应的存储管理形式的其中一种具体结构中,索引表包括了存储偏移地址和方便进行哈希查找的相关信息即哈希查找信息,在其他实施例中,在索引表中还可以包括存储偏移地址和诸如一个或者多个关键字描述信息等用于描述对应存储偏移地址下存储的数据,以方便基于关键字的搜索查找,并不仅限于上述的基于哈希的数据描述信息。
[0041]图2中示出的索引节点的每一行对应一条存储数据,其表示map类型数据的索引格式,也就是说,map类型数据的索引格式为表1的形式,对该表1进行简单变形,可以得到下表2中set、vector类型数据的索引格式,下表3中sortset类型数据的索引格式,下表4中的list类型数据的索引格式。
[0042]表1:
[0043]
【权利要求】
1.一种数据的存储管理方法,其特征在于,包括: 建立根节点及其管理的索引节点,所述根节点中包括各个索引节点关联的存储域信息,所述存储域信息包括存储域的起始地址和标识范围信息; 基于根节点及其管理的索引节点确定待存储数据的哈希值; 根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址; 在确定的存储地址下存储所述待存储数据,并将所述待存储数据的数据描述信息记录到所述目标索引节点中。
2.如权利要求1所述的方法,其特征在于,所述根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址,包括: 根据哈希值和所述根节点中包括的各个索引节点关联的存储域信息中存储域的标识范围信息,确定目标索引节点; 根据为所述目标索引节点预设的数据管理数阈值,确定所述待存储数据在所述目标索引节点关联的存储域中的位置作为存储地址。
3.如权利要求1所述的方法,其特征在于,所述在确定的存储地址下存储所述待存储数据,并将所述待存储数据的数据描述信息记录到所述目标索引节点中,包括: 在确定的存储地址下存储所述待存储数据; 根据确定的存储地址在所述目标索引节点关联的存储域中的位置和根节点中所述目标索引节点的存储域信息包括的存储域起始地址,获取所述待存储数据的数据偏移地址; 将所述数据偏移地址和所述待存储数据的哈希查找信息作为所述待存储数据的数据描述信息记录到所述目标索引节点。
4.如权利要求2所述的方法,其特征在于,所述根据为所述目标索引节点预设的数据管理数阈值,确定所述待存储数据在所述目标索引节点关联的存储域中的位置作为存储地址,包括: 根据为所述目标索引节点预设的数据管理数阈值,判断目标索引节点当前所管理的存储数据的数量是否达到所述预设的数据管理数阈值; 在判断结果为否时,确定所述待存储数据在所述目标索引节点关联的存储域中的位置作为存储地址。
5.如权利要求4所述的方法,其特征在于,还包括: 在判断结果为达到所述预设的数据管理数阈值时,读取所述目标索引节点关联的存储域中的已存储数据; 将所述目标索引节点分裂为至少两个索引节点,将读取的已存储数据和接收到的待存储数据作为待存储数据,执行根据根节点及其管理的索引节点对待存储数据进行存储管理的步骤。
6.如权利要求4所述的方法,其特征在于,还包括: 在判断结果为达到所述预设的数据管理数阈值时,进一步判断所述根节点当前管理的存储数据是否达到为所述 根节点预设的条数阈值; 若否,读取所述目标索引节点关联的存储域中的已存储数据,将所述目标索引节点分裂为至少两个索引节点,将读取的已存储数据和接收到的待存储数据作为待存储数据,执行根据根节点及其管理的索引节点对待存储数据进行存储管理的步骤; 若是,读取所述根节点管理的所有索引节点关联的存储域中的已存储数据,建立一级根节点、一级根节点管理的根节点以及根节点管理的索引节点; 将读取的已存储数据和接收到的待存储数据作为待存储数据,根据一级根节点、根节点以及索引节点对待存储数据进行存储管理。
7.如权利要求1-6任一项所述的方法,其特征在于,还包括: 检测所述根节点管理的所有索引节点对应的存储域的空闲空间,得到空闲空间总量; 若空闲空间总量满足预设的回收条件,执行回收操作回收空闲空间; 在回收操作执行结束后,根据回收的空间量判断是否进行重写操作; 若是,则根据当前根节点及其管理的索引节点记录的存储数据的数据描述信息,在新的存储空间中存储当前根节点及其管理的索引节点记录的存储数据。
8.一种数据的存储管理装置,其特征在于,包括: 建立模块,用于建立根节点及其管理的索引节点,所述根节点中包括各个索引节点关联的存储域信息,所述存储域信息包括存储域的起始地址和标识范围信息; 管理模块,用于根据根节点及其管理的索引节点对待存储数据进行存储管理;所述管理模块具体包括: 计算单元,用于基于根节点及其管理的索引节点确定待存储数据的哈希值; 确定单元,用于根据哈希值和根节点包括的各个索引节点关联的存储域信息中存储域的起始地址和标识范围信息,确定目标索引节点以及待存储数据的存储地址; 存储管理单元,用于在确定的存储地址下存储所述待存储数据,并将所述待存储数据的数据描述信息记录到所述目标索引节点中。
9.如权利要求8所述的装置,其特征在于,所述确定单元包括: 节点确定子单元,用于根据哈希值和所述根节点中包括的各个索引节点关联的存储域信息中存储域的标识范围信息,确定目标索引节点; 地址确定子单元,用于根据为所述目标索引节点预设的数据管理数阈值,确定所述待存储数据在所述目标索引节点关联的存储域中的位置作为存储地址。
10.如权利要求8所述的装置,其特征在于,所述存储管理单元包括: 存储子单元,用于在确定的存储地址下存储所述待存储数据; 获取子单元,用于根据确定的存储地址在所述目标索引节点关联的存储域中的位置和根节点中所述目标索引节点的存储域信息包括的存储域起始地址,获取所述待存储数据的数据偏移地址; 记录子单元,用于将所述数据偏移地址和所述待存储数据的哈希查找信息作为所述待存储数据的数据描述信息记录到所述目标索引节点。
11.如权利要求9所述的装置,其特征在于, 所述地址确定子单元,用于根据为所述目标索引节点预设的数据管理数阈值,判断目标索引节点当前所管理的存储数据的数量是否达到所述预设的数据管理数阈值,并在判断为否时,确定所述待存储数据在所述目标索引节点关联的存储域中的位置作为存储地址。
12.如权利要求11所述的装置,其特征在于,还包括:第一读取处理模块,用于在判断结果为达到所述预设的数据管理数阈值时,读取所述目标索引节点关联的存储域中的已存储数据; 第一分裂模块,用于将所述目标索引节点分裂为至少两个索引节点,将读取的已存储数据和接收到的待存储数据作为待存储数据,并通知管理模块根据根节点及其管理的索引节点对待存储数据进行存储管理。
13.如权利要求11所述的装置,其特征在于,还包括: 判断模块,用于在判断结果为达到所述预设的数据管理数阈值时,进一步判断所述根节点当前管理的存储数据是否达到为所述根节点预设的条数阈值; 第二读取模块,用于在所述判断模块的判断结果为否时,读取所述目标索引节点关联的存储域中的已存储数据; 第二分裂模块,用于将所述目标索引节点分裂为至少两个索引节点,将读取的已存储数据和接收到的待存储数据作为待存储数据,并通知管理模块根据根节点及其管理的索引节点对待存储数据进行存储管理; 第三读取模块,用于在所述判断模块的判断结果为是时,读取所述根节点管理的所有索引节点关联的存储域中的已存储数据; 所述建立模块,还用于建立一级根节点、一级根节点管理的根节点以及根节点管理的索引节点; 所述管理模块,还用于将读取的已存储数据和接收到的待存储数据作为待存储数据,根据一级根节点、根节点以及索引节点对待存储数据进行存储管理。
14.如权利要求8-13任一项所述的装置,其特征在于,还包括: 检测模块,用于检测所述根节点管理的所有索引节点对应的存储域的空闲空间,得到空闲空间总量; 回收模块,用于在空闲空间总量满足预设的回收条件时,执行回收操作回收空闲空间; 重写判断模块,用于在回收操作执行结束后,根据回收的空间量判断是否进行重写操作; 重写模块,用于在所述重写判断模块的判断结果为是时,根据当前根节点及其管理的索引节点记录的存储数据的数据描述信息,在新的存储空间中存储当前根节点及其管理的索引节点记录的存储数据。
【文档编号】G06F17/30GK104008111SQ201310060460
【公开日】2014年8月27日 申请日期:2013年2月27日 优先权日:2013年2月27日
【发明者】常亮, 郭振宇, 邹方明 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1