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

文档序号:9547271阅读:来源:国知局
相邻数据的位置标识为_1,右相邻数据的位置标识为2 ;第二节点数据的位置标识为2,value数据单元为b,左边相邻数据的位置标识为1,右相邻数据的位置标识为3 ;第三节点数据的位置标识为3,value数据单元为C,左边相邻数据的位置标识为2,右相邻数据的位置标识为-1 ;第四节点数据的位置标识为4,value数据单元为d,左边相邻数据的位置标识为3,右相邻数据的位置标识为5 ;第五节点数据的位置标识为5,value数据单元为e,左边相邻数据的位置标识为4,右相邻数据的位置标识为6 ;第六节点数据的位置标识为6,value数据单元为f,左边相邻数据的位置标识为5,右相邻数据的位置标识为-1 ;则转换存储后的三个第二键值对分别为:第一个第二键值对中,第二类键为“K+1”,第二类值包括第一节点数据的位置标识Uvalue数据单元a、左边相邻数据的位置标识-1、右相邻数据的位置标识2,及第二节点数据的位置标识
2、value数据单元b、左边相邻数据的位置标识1、右相邻数据的位置标识3 ;第二个第二键值对中,第二类键为“K+2”,第二类值包括第三节点数据的位置标识3、value数据单元C、左边相邻数据的位置标识2、右相邻数据的位置标识-1,及第四节点数据的位置标识4、value数据单元d、左边相邻数据的位置标识3、右相邻数据的位置标识5 ;第三个第二键值对中,第二类键为“K+3”,第二类值包括第五节点数据的位置标识5、value数据单元e、左边相邻数据的位置标识4、右相邻数据的位置标识6,及第六节点数据的位置标识6、value数据单元f、左边相邻数据的位置标识5、右相邻数据的位置标识-1。
[0077]优选地,该方法还包括步骤S140 (图中未示出)和步骤S150 (图中未示出);步骤S140:提取链表中多个数据的结构相关信息,并将结构相关信息确定为转换存储结构中的第三类值;步骤S150:将第一类键及第三类值组成的第三键值对存储至键值数据库中。
[0078]其中,多个数据的结构相关信息至少包括:
[0079]链表中包括数据的数量;
[0080]链表中的下一可用的位置标识;
[0081]链表的头部数据的位置标识;
[0082]链表的尾部数据的位置标识;
[0083]链表中每一数据的位置标识;
[0084]每一数据在链表中左右相邻两个数据中的位置标识。
[0085]例如,如图6所示的list类型链表存储结构中,3个节点的数据的结构相关信息可包括:该链表中包括3个数据,该链表中的下一可用的位置标识为“4”,该链表的头部数据的位置标识为“ I ”,该链表的尾部数据的位置标识为“3”,第I节点对应的位置标识“ I ”、pr1r代表的第I节点数据的左边相邻数据的位置标识“-1”和next代表的第I节点数据的右相邻数据的位置标识“2”,第2节点对应的位置标识“2”、pri0r代表的第2节点数据的左边相邻数据的位置标识“I”和next代表的第2节点数据的右相邻数据的位置标识“3”,第3节点对应的位置标识“3”、pr1r代表的第3节点数据的左边相邻数据的位置标识“2”和next代表的第3节点数据的右相邻数据的位置标识“-1” ;将上述全部的结构相关信息确定为转换存储结构中的第三类值;该链表的链表标识K为转换存储结构中的第一类键,将第一类键K及包括链表全部结构相关信息的第三类值组成的第三键值对存储至键值数据库中;如图6中,在包括3个数据的链表中,第一节点数据的位置标识为1,value数据单元为a,左边相邻数据的位置标识为-1,右相邻数据的位置标识为2 ;第二节点数据的位置标识为2,value数据单元为b,左边相邻数据的位置标识为I,右相邻数据的位置标识为3 ;第三节点数据的位置标识为3,value数据单元为C,左边相邻数据的位置标识为2,右相邻数据的位置标识为-1,则转换存储后的第三键值对中,第一类键为“K”,第三类值包括第一节点中的位置标识1、左边相邻数据的位置标识-1、右相邻数据的位置标识2,第二节点中的位置标识2、左边相邻数据的位置标识1、右相邻数据的位置标识3,第三节点中的位置标识3、左边相邻数据的位置标识2及右相邻数据的位置标识-1。
[0086]更优选地,该方法还包括步骤S160(图中未示出)、步骤S170(图中未示出)和步骤S180(图中未示出);步骤S160:提取链表包括的各个数据中的位置标识,并将各个数据中的位置标识确定为转换存储结构中的第四类键;步骤S170:提取链表包括的各个数据中的value数据单元,并将各个数据中的value数据单元确定为转换存储结构中的第四类值;步骤S180:将第四类键及相应的第四类值分别组成的多个第四键值对存储至键值数据库中。
[0087]例如,如图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”存储至键值数据库中。优选地,该方法还包括步骤S190(图中未示出);步骤S190:根据转换存储结构,对键值数据库进行更新操作。
[0088]例如,接上例,在图6所示的链表中的第2节点与第3节点中加入一新节点第4节点,第4节点数据的value数据单元为d,则键值数据库中,将第一类键为“K”的第一键值对的第一类值进行修改,在第一类值中添加第4节点的数据;,在第一类值中添加第4节点后第2节点的pr1r的位置标识,与第3节点的next的位置标识会随之发生变化,,在第一类值中添加第4节点后包括的更新后链表的全部数据信息,具体地,更新后的链表数据结构如图8所示。
[0089]在一具体应用场景中,在一 list类型链表中包括η个节点,每个节点对应的value数据单元数据为一串大于10000字节的字符型数据,首先提取该链表的结构相关信息,可包括:每个节点对应的位置标识“ I ”、pr1r代表的每个节点数据的左边相邻数据的位置标识和next代表的每个节点数据的右相邻数据的位置标识,链表的头部数据的位置标识为I,链表的尾部数据的位置标识为n,该链表中包括η个数据,该链表中的下一可用的位置标识为“η+1”,将上述该链表的结构相关信息确定为转换存储结构中的第一类值,该链表的链表标识K确定为第一类键,则将第一类键及第一类值组成的第一键值对存储至键值数据库中;同时,提取各节点的位置标识确定为转换存储结构中的第三类键,各个节点数据中的value数据单元确定为转换存储结构中的与第三类键相应的第三类值,并将第三类键及相应的第三类值分别组成的η个第三键值对存储至键值数据库中。通过该存储方式,通过查询第一键值对可确定各节点的结构信息,如某一节点的位置信息,随后,再基于该位置信息通过查询第三键值对可得到该节点的具体数据值,通过对包含较大数据的链表进行结构和值的拆分存储,可实现高效的读取和更新操作,从而使得本方案的数据存储方式拥有较强的业务扩展性。
[0090]图3为本发明中另一实施例的数据存储结构的转换装置的结构示意图。
[0091]第一键确定模块310提取基于原始存储结构的与多个数据对应的第一标识单元,并将第一标识单元确定为转换存储结构中的第一类键,其中,多个数据对应于同一第一标识单元;第一值确定模块320将多个数据确定为转换存储结构中的第一类值;第一键值对存储模块330将第一类键及第一类值组成的第一键值对存储至键值数据库中。
[0092]本发明的实施例中,提出了一种数据存储结构的转换方案,通过将基于原始存储结构的数据转换存储为基于转换存储结构中的数据,实现对多种存储数据类型以统一的转换存储结构的方式进行数据存储。进一步的,将支持多种value类型的数据存储结构的Redis存储系统中的多种数据存储结构的数据,转存至仅支持无变形的键值对数据存储结构的LevelDB存储系统,实现了在保证较高的数据存储处理效率的前提下,将受物理内存限制的存储方式转换为以磁盘为数据存储目标的、不受物理内存限制的存储方式。通过本发明,最终可实现一种数据存储处理效率较高、既支持多种类型的数据存储结
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1