[发明专利]一种数据管理方法及装置在审
申请号: | 201810168138.0 | 申请日: | 2018-02-28 |
公开(公告)号: | CN110309137A | 公开(公告)日: | 2019-10-08 |
发明(设计)人: | 陈闯;李树龙;张炎泼 | 申请(专利权)人: | 贵州白山云科技股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/54;G06F9/50 |
代理公司: | 北京名华博信知识产权代理有限公司 11453 | 代理人: | 白莹;李冬梅 |
地址: | 550003 贵州省贵阳市*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 黑树 数据管理 表集合 嵌套 红黑树结构 存储系统 方法使用 管理操作 节点管理 数据集合 数据结构 表支持 复杂度 管理表 子表 删除 集合 引用 查找 管理 | ||
本发明公开了一种数据管理方法及装置。所公开的方法包括:基于表红黑树来管理表集合;基于数据红黑树来管理每个表中的数据集合,其中,表集合中的表支持对表集合中的表和子表的嵌套引用,表红黑树和数据红黑树共用同一种节点管理数据结构。所公开的方法使用红黑树结构来实现数据表的相关管理操作,相对于现有redis存储系统中的hash数据表而言,使得数据表的查找、删除、插入等操作的复杂度趋于稳定。
技术领域
本发明涉及计算机系统,尤其涉及一种数据管理方法及装置。
背景技术
计算机系统的一个重要功能就是用来管理各种数据。如何高效地管理各种数据是计算机领域中的一项关键技术。
相互关联的数据通常都以数据表的形式被存储在诸如数据库等的存储系统中,为了加快处理速度,某些重要的数据表还会被映射到内存中,并且可以在多个进程之间进行共享。
例如,现有的redis存储系统,采用了hash表的方式来实现数据表。然而,使用关键字的hash函数值作为索引值,会产生hash碰撞的问题(即,导致不同的关键字映射到同一个hash表项),此时,对数据表进行操作的复杂度增加至对包含产生碰撞的所有元素的链表进行操作的复杂度。
另外,在redis存储系统中利用hash表来实现数据表的嵌套引用,操作非常复杂(需要按照嵌套引用关系,依次地逐句调用redis的hmset命令来进行操作)。而且,不同嵌套层级在调用hmset命令实现时,为了避免关键字的冲突,需要在本级的关键字中按照嵌套的顺序关系依次顺序包含其上各级的各个关键字,这就造成了关键字会随着嵌套层级的增加而不断增长、从而占用更多存储空间的问题。
因此,为了解决上述问题,需要提出新的技术方案。
发明内容
本发明旨在解决上面描述的问题。
根据本发明的一种数据管理方法,包括:
基于表红黑树来管理表集合;
基于数据红黑树来管理每个表中的数据集合,
其中,表集合中的表支持对表集合中的表和子表的嵌套引用,表红黑树和数据红黑树共用同一种节点管理数据结构。
根据本发明的数据管理方法,还包括:
将表映射到内存空间中。
根据本发明的数据管理方法,还包括:
在不同进程之间共享映射到内存空间中的表。
根据本发明的数据管理方法,其内存空间是slab内存空间。
根据本发明的数据管理方法,还包括:
分别统计表集合中的每个表及其子表被引用的总次数,释放被引用的总次数为0的表所占用的内存空间。
根据本发明的数据管理方法,其节点管理数据结构包括:用于存储待管理的红黑树节点的第一变量;用于存储待管理的红黑树节点类型的第二变量;用于存储待管理的红黑树节点变量中的关键字的长度的第三变量;用于存储与待管理的红黑树节点变量中的关键字对应的值的长度的第四变量;用于存储公用变量的地址空间的起始地址的第五变量;
其中,第二变量用于标识待管理的红黑树节点是表节点、数据原型节点还是数据引用节点,当待管理的红黑树节点为表节点时,公用变量用于存储表节点实例中的关键字和表所对应的数据红黑树的根节点的地址,当待管理的红黑树节点为数据原型节点时,公用变量用于存储数据原型节点实例中的关键字和值,当待管理的红黑树节点为数据引用节点时,公用变量用于存储数据引用节点实例中的关键字和所引用的表所对应的数据红黑树根节点或所引用的子表所对应的数据红黑树节点的地址。
根据本发明的一种数据管理装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵州白山云科技股份有限公司,未经贵州白山云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810168138.0/2.html,转载请声明来源钻瓜专利网。