[发明专利]基于Linux的key-value形数据存储和使用方法有效
| 申请号: | 202310121877.5 | 申请日: | 2023-02-16 |
| 公开(公告)号: | CN115827573B | 公开(公告)日: | 2023-06-02 |
| 发明(设计)人: | 纪笑旭;翟康宁;张超;史晶;郭俊余;魏立峰;张鹏飞;张子豪;何文飞;白俊杰;程启 | 申请(专利权)人: | 麒麟软件有限公司 |
| 主分类号: | G06F16/16 | 分类号: | G06F16/16;G06F16/172 |
| 代理公司: | 北京汇智英财专利代理有限公司 11301 | 代理人: | 杨国栋 |
| 地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 linux key value 形数 存储 使用方法 | ||
1.基于Linux的key-value形数据存储和使用方法,其特征在于,包括如下步骤:
步骤S1:基于key-value形数据源文件构建双数组trie树,并基于双数组trie树构建.dat数据文件;
步骤S2:获取key-value形数据源文件的md5值;
步骤S3:使用mmap机制将.dat数据文件映射到内存上并返回映射后的内存地址addr;
步骤S4:使用映射后的内存地址addr获取到.dat数据文件中的md5值,并与步骤S2中的md5值进行比对,相同的话执行步骤S5至步骤S7;不同的话,跳转到步骤S1,重新构建.dat数据文件,并重新执行步骤S2至步骤S4;
步骤S5:使用映射后的内存地址addr得到存储的value数据的首地址elements_addr以及双数组trie树的数据首地址trie_addr;
步骤S6:基于value数据的首地址elements_addr以及双数组trie树的数据首地址trie_addr完成由key数据到value数据的查找使用流程,完成key-value形数据的存储和使用;
步骤S7:取消.dat数据文件的mmap挂载;
所述步骤S1中,基于key-value形数据源文件构建双数组trie树,并基于双数组trie树构建.dat数据文件的方法如下:
步骤S11:将存储key-value形数据的源文件所在路径传入计算机程序中;
步骤S12:对传入的key-value形数据源文件内容进行解析处理,将全部key-value形数据提取出来存入计算机内存中;
步骤S13:将存入计算机内存的key-value形数据根据key值的ASCII码大小进行比较排序;
步骤S14:将排好序的key-value形数据进行拆分,从第一组key-value形数据开始,拆分为key-offset-value形数据,其中offset为当前组数之前全部key-value形数据中value数据的字节数之和加上当前组数减一最终计算的结果,用数学公式表示为:
offset=(V1+V2+...+Vn-1)+(n-1),n>1
其中n为整数,指的是当前的key-value形数据是第n组,V1、V2、Vn-1表示第1组、第2组、第n-1组key-value形数据中value数据的字节数量,第一组key-value形数据的offset为0;
步骤S15:依次处理完计算机内存中全部的key-value形数据,得到按照顺序依次排列的key-offset-value形数据;
步骤S16:按照顺序将key-offset-value形数据中的key数据取出用来构造有向无环词图DAWG;
步骤S17:使用构造完成的有向无环词图DAWG和key-offset-value形数据中的offset数据按照顺序构造双数组trie树;
步骤S18:基于所构造的双数组trie树生成存储在计算机硬盘中的.dat数据文件。
2.如权利要求1所述的基于Linux的key-value形数据存储和使用方法,其特征在于,
所述步骤S5中,value数据的首地址elements_addr的获取方法如下:
步骤S51:根据.dat数据文件的构造顺序从.dat数据文件中获取到key-value形数据总数elements_num、全部value数据字节数与value数据个数之和elements_size以及双数组trie树占用的字节数量trie_size;
步骤S52:使用内存地址addr加上步骤S51中得到的三项字节数之和的偏移量,得到存储的value数据的首地址elements_addr;
双数组trie树的数据首地址trie_addr的获取方法如下:将value数据的首地址elements_addr加上全部value数据字节数与value数据个数之和elements_size得到双数组trie树的数据首地址trie_addr。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310121877.5/1.html,转载请声明来源钻瓜专利网。





