[发明专利]一种跨平台高效键值存储方法在审
申请号: | 202010407639.7 | 申请日: | 2020-05-14 |
公开(公告)号: | CN111639076A | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 张向胜;陆黎川;张力;徐瑞超;张冠军;范冲冲 | 申请(专利权)人: | 民生科技有限责任公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/24;G06F9/52 |
代理公司: | 北京金智普华知识产权代理有限公司 11401 | 代理人: | 巴晓艳 |
地址: | 101300 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 平台 高效 键值 存储 方法 | ||
1.一种跨平台高效键值存储方法,其特征在于,所述方法采用紧凑型数据结构对数据进行存储,以避免数据冗余;存储数据时直接以二进制形式写入数据库文件中,以减少文件占用空间;内存对数据进行读取时采用键值哈希索引+偏移量的方式进行缓存,实现对内存的节省。
2.根据权利要求1所述的跨平台高效键值存储方法,其特征在于,紧凑型数据结构的格式具体为:
|value|key|valueLen|keyLen|keyHash|valueHash|valueType|,
其中,valueType代表数据类型和是否为有效数据,占用8bit,keyHash表示键值哈希值,占用32bit,也用作该数据在索引中的哈希值,valueHash表示value的哈希值,占用8bit,用于保证数据的完整性,keyLen表示键值长度,占用10bit,valueLen表示值的长度,另外keyLen和valueLen表示偏移量;
每条数据之间头尾相连,无其他符号。
3.根据权利要求2所述的跨平台高效键值存储方法,其特征在于,对数据库文件中的数据进行插入和更新操作时,在索引列表中遍历待操作数据的键值哈希值;
如果存在相同的键值哈希值,则判定为更新逻辑,将原有数据的数据类型标记为已删除,并在数据库文件的末尾增加新的数据,生成新的内存索引;
如果不存在相同的键值哈希值,则判定为插入逻辑,直接在数据库文件的末尾增加新的数据,生成新的内存索引。
4.根据权利要求2所述的跨平台高效键值存储方法,其特征在于,对数据库文件中的数据进行删除操作时,通过键值哈希值在索引列表中查找要删除的数据对应的键值哈希值,以判断数据库文件中是否存在该数据;
当不存在该数据时,直接返回删除成功;
当存在该数据时,将该数据的数据类型标记为已删除,并在索引列表中删除对应的索引。
5.根据权利要求2所述的跨平台高效键值存储方法,其特征在于,对数据库文件中的数据进行查询操作时,通过键值哈希值用倒叙的方式在索引列表中查找待操作数据对应的键值哈希值,以判断数据库文件中是否存在该数据;
当不存在该数据时,向使用者返回该数据不存在;
当存在该数据时,向使用者返回该数据。
6.根据权利要求3或4所述的跨平台高效键值存储方法,其特征在于,将数据类型标记为已删除时,并未真正删除数据库文件中的相应数据,为了避免造成文件冗余,在冗余数据条数达到预设阈值时或者数据库文件的大小达到规定大小时,触发数据库文件整理操作,删除标记为已删除的数据。
7.根据权利要求6所述的跨平台高效键值存储方法,其特征在于,冗余数据条数达到预设阈值具体为:现有冗余数据条数不小于数据库允许的冗余数据条数的50%。
8.根据权利要求6所述的跨平台高效键值存储方法,其特征在于,数据库文件大小达到规定大小具体为:数据库文件的大小不小于500k。
9.根据权利要求1所述的跨平台高效键值存储方法,其特征在于,对每一个数据库文件设置文件锁,当一个进程请求对某一数据库文件进行操作时,先获取该文件的文件锁;
若当前没有其他进程对该数据库文件进行操作,则可以获取到文件锁,并对数据库文件进行操作;
若当前有其他进程正在对该数据库文件进行操作,则无法获取文件锁,使用者进入等待或者放弃本次请求。
10.一种存储介质,存储有软件程序,其特征在于,运行时能够实现如权利要求1-9任一所述的跨平台高效键值存储方法的内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于民生科技有限责任公司,未经民生科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010407639.7/1.html,转载请声明来源钻瓜专利网。