数据存储结构的转换方法及装置的制造方法_4

文档序号:9547271阅读:来源:国知局
构、又不受物理内存限制的存储系统,由于该存储系统可对多种数据结构类型的海量数据进行高效存储,从而使得本方案的数据存储方式拥有较强的业务扩展性。
[0093]本具体实施例中,基于原始存储结构的多个数据具体包括基于链表存储结构的同一链表中多个数据,第一键确定模块310提取基于链表存储结构的多个数据所在链表的链表标识,并将链表标识确定为转换存储结构中的第一类键;第一值确定模块320将链表包括的多个数据确定为转换存储结构中的第一类值;第一键值对存储模块330将第一类键及第一类值组成的第一键值对存储至键值数据库中。
[0094]本实施例中,以原始链表存储结构为list类型链表数据结构为例,该list类型链表为带数据域的双向链表结构,链表中的一个数据的结构如图5所示。
[0095]其中,data代表该数据中的value数据单元,pr1r代表该数据的左边相邻数据的位置标识,next代表该数据的右相邻数据的位置标识。
[0096]若list类型链表中存在3个数据,即3个节点,各数据的位置标识及结构如图6。
[0097]其中,在该包括3个数据的链表中,第一节点数据的位置标识为I,value数据单元为a,左边相邻数据的位置标识为-1,右相邻数据的位置标识为2 ;第二节点数据的位置标识为2,value数据单元为b,左边相邻数据的位置标识为1,右相邻数据的位置标识为3 ;第三节点数据的位置标识为3,value数据单元为C,左边相邻数据的位置标识为2,右相邻数据的位置标识为-1;其中,由于第一节点的数据不存在前节点,即不存在左边相邻数据的位置标识,则设为-1,同理,第三节点数据不存在后节点,,即不存在右边相邻数据的位置标识,也设为-1。
[0098]第一键确定模块310提取基于原始存储结构的与多个数据对应的第一标识单元,并将第一标识单元确定为转换存储结构中的第一类键,其中,多个数据对应于同一第一标识单元。
[0099]具体地,提取基于链表存储结构的多个数据所在链表的链表标识,并将链表标识确定为转换存储结构中的第一类键,其中,多个数据对应于同一链表标识。
[0100]例如,提取如图6所示的list类型链表存储结构中各个数据对应的链表标识,如K,并将K确定为转换存储结构中的第一类键,其中,该链表的第I节点的数据、第2节点的数据和第3节点的数据对应的第一标识单元均为K。
[0101]第一值确定模块320将多个数据确定为转换存储结构中的第一类值。
[0102]例如,接上例,将第I节点、第2节点和第3节点的全部数据确定为转换存储结构中的第一类值。
[0103]第一键值对存储模块330将第一类键及第一类值组成的第一键值对存储至键值数据库中。
[0104]例如,接上例,将第一类键“K”及第一类值组成的第一键值对存储至键值数据库中,其中,第一类值包括图6记录的第I节点、第2节点和第3节点的全部数据。
[0105]在一优选实施例中,如图4所示,该装置还包括第二键确定模块410、第二值确定模块420和第二键值对存储模块430 ;第二键确定模块410基于预定划分规则将多个数据划分为多个数据分段,并将各个数据分段分别确定为转换存储结构中的第二类值;第二值确定模块420确定与各个数据分段相应的分段标识,并将分段标识确定为与各个数据分段相应的第二类键;第二键值对存储模块430将第二类键及相应的第二类值分别组成的多个第二键值对存储至键值数据库中。
[0106]例如,如图7所示的list类型链表存储结构中,基于预定划分规则,如将链表中每2个节点划为一个数据分段,将图7所示的链表划分为3个数据分段,并将各个数据分段分别确定为转换存储结构中的第二类值,即将第I节点和第2节点的数据确定为第一个数据分段的第二类值,将第3节点和第4节点的数据确定为第二个数据分段的第二类值,将第5节点和第6节点的数据确定为第三个数据分段的第二类值;根据预定的分段标识确定规贝1J,确定与各个数据分段相应的分段标识,可得到第I节点和第2节点组成的第一个数据分段对应的分段标识为K+1,第3节点和第4节点组成的第二个数据分段对应的分段标识为K+2,第5节点和第6节点组成的第三个数据分段对应的分段标识为K+3,并将分段标识确定为与各个数据分段相应的第二类键;将K+1及第I节点和第2节点的数据组成的第二键值对、将K+2及第3节点和第4节点的数据组成的第二键值对、将K+3及第5节点和第6节点的数据组成的第二键值对分别存储至键值数据库中。
[0107]优选地,该装置还包括第三值确定模块(图中未示出)和第三键值对确定模块(图中未示出);第三值确定模块提取链表中多个数据的结构相关信息,并将结构相关信息确定为转换存储结构中的第三类值;第三键值对确定模块将第一类键及第三类值组成的第三键值对存储至键值数据库中。
[0108]其中,多个数据的结构相关信息包括但不限于:
[0109]链表中包括数据的数量;
[0110]链表中的下一可用的位置标识;
[0111]链表的头部数据的位置标识;
[0112]链表的尾部数据的位置标识;
[0113]链表中每一数据的位置标识;
[0114]每一数据在链表中左右相邻两个数据中的位置标识。
[0115]例如,如图6所示的list类型链表存储结构中,3个节点的数据的结构相关信息可包括:该链表中包括3个数据,该链表中的下一可用的位置标识为“4”,该链表的头部数据的位置标识为“ I ”,该链表的尾部数据的位置标识为“3”,第I节点对应的位置标识“ I ”、pr1r代表的第I节点数据的左边相邻数据的位置标识“-1”和next代表的第I节点数据的右相邻数据的位置标识“2”,第2节点对应的位置标识“2”、pr1r代表的第2节点数据的左边相邻数据的位置标识“I”和next代表的第2节点数据的右相邻数据的位置标识“3”,第3节点对应的位置标识“3”、pri0r代表的第3节点数据的左边相邻数据的位置标识“2”和next代表的第3节点数据的右相邻数据的位置标识“_1” ;将上述全部的结构相关信息确定为转换存储结构中的第三类值;该链表的链表标识K为转换存储结构中的第一类键,将第一类键K及包括链表全部结构相关信息的第三类值组成的第三键值对存储至键值数据库中。
[0116]更优选地,该装置还包括第四键确定模块(图中未示出)、第四值确定模块(图中未示出)和第四键值对确定模块(图中未示出);第四键确定模块提取链表包括的各个数据中的位置标识,并将各个数据中的位置标识确定为转换存储结构中的第四类键;第四值确定模块提取链表包括的各个数据中的value数据单元,并将各个数据中的value数据单元确定为转换存储结构中的第四类值;第四键值对确定模块将第四类键及相应的第四类值分别组成的多个第四键值对存储至键值数据库中。
[0117]例如,如图6的list类型链表存储结构中,提取各个数据中的位置标识得到第I节点数据的位置标识为“1”,第2节点数据的位置标识为“2”,第3节点数据的位置标识为“3”,将各个数据中的位置标识确定为转换存储结构中的第四类键;提取链表包括的各个数据中的value数据单元得到第I节点的value数据单位为“a”,第2节点的value数据单位为“b”,第3节点的value数据单位为“C”,并将各个数据中的value数据单元确定为转换存储结构中的第四类值;将第四类键及相应的第四类值分别组成的多个第四键值对“l_a”、“2-b”和“3-c”存储至键值数据库中。优选地,该装置还包括更新模块(图中未示出);更新模块根据转换存储结构,对键值数据库进行更新操作。
[0118]例如,接上例,在图6所示的链表中的第2节点与第3节点中加入一新节点第4节点,第4节点数据的value数据单元为d,则键值数据库中,将第一类键为“K”的第一键值对的第一类值进行修改,在第一类值中添加第4节点的数据;,在第一类值中添加第4节点后第2节点的pr1r的位置标识,与第3节点的next的位置标识会随之发生变化,,在第一类值中添加第4节点后包括的更新后链表的全部数据信息,具体地,更新后的链表数据结构如图8所示。
[0119]在一具体应用场景中,在一 list类型链表中包括η个节点,每个节点对应的value数据单元数据为一串大于10000字节的字符型数据,首先提取该链表的结构相关信息,可包括:每个节点对应的位置标识“ I ”、pr1r代表的每个节点数据
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1