[发明专利]数据存储方法、装置和计算机可读存储介质有效
申请号: | 201910345763.2 | 申请日: | 2019-04-26 |
公开(公告)号: | CN110069452B | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 甘晓霖 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F16/13 | 分类号: | G06F16/13 |
代理公司: | 北京竹辰知识产权代理事务所(普通合伙) 11706 | 代理人: | 陈龙 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 存储 方法 装置 计算机 可读 介质 | ||
1.一种数据存储方法,其特征在于,包括:
获取待存储的键-值对;
将所述键-值对中的键存储在数据文件的第一数据块中;
将所述键在所述数据文件中的位置索引存储在索引文件的第一数据块中的索引存储位置中;
确定所述键-值对中的值的数据类型;
根据所述数据类型确定将所述值存储在所述数据文件或所述索引文件中;其中,所述数据类型包括第一数据类型、第二数据类型、第三数据类型和第四数据类型;所述第一数据类型为字符串类型,对应所述第一数据类型的值存储在所述数据文件中,所述第二数据类型为浮点型、或整型、或短整型、或字符型、或字节类型,对应所述第二数据类型的值存储在所述索引文件中,所述第三数据类型为长整型、或双精度型,对应所述第三数据类型的值存储在所述索引文件中,第四数据类型为布尔类型,对应所述第四数据类型的值存储在所述索引文件中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据类型确定将所述值的存储在所述数据文件或所述索引文件中,包括:
如果所述数据类型为第一数据类型,将所述第一数据类型的标识存储在所述索引文件的第一数据块中的第一标志位中;
将所述值存储在所述数据文件的第二数据块中,并将所述值在所述数据文件中的位置索引存储在所述索引文件的第二数据块中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据类型确定将所述值的存储在所述数据文件或所述索引文件中,包括:
如果所述数据类型为第二数据类型,则将所述第二数据类型的标识存储在所述索引文件的第一数据块中的第一标志位中;
将所述值存储在所述索引文件的第二数据块中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据类型确定将所述值的存储在所述数据文件或所述索引文件中,包括:
如果所述数据类型为第三数据类型,则将所述第三数据类型的标识存储在所述索引文件的第一数据块中的第一标志位中;
将所述值所占的位数分为低位和高位,分别存储在所述索引文件的第二数据块和第三数据块中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据类型确定将所述值的存储在所述数据文件或所述索引文件中,包括:
如果所述数据类型为第四数据类型,则将所述值存储在所述索引文件的第一数据块的标志位中。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述索引文件还包括表征所述键-值对对应的数据块是否有效的第二标志位、表征所述索引文件是否能够扩展的第三标志位、表征所述值是否是压缩类型的第四标志位和是否预留存储空间的第五标志位中的至少一种存储标识。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
确定所述键-值对的存储操作是否为修改操作;
若是,则根据所述值对应的历史值的数据类型确定历史存储时所占用的存储文件及对应的数据块,并清空对应的数据块中的所述历史值。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据预先建立的空闲数据块列表查询空闲数据块索引;
针对所述索引文件和所述数据文件,若零散分布在文件中的空闲数据块的数量超过预设阈值,则对对应文件进行整理,以将零散分布的空闲数据块集中在一起。
9.根据权利要求1-5任一项所述的方法,其特征在于,所述索引文件中的第一数据块和第二数据块物理位置相邻。
10.根据权利要求1-5任一项所述的方法,其特征在于,当所述键-值对为多个时;针对每个键-值对,在所述索引文件中所占用的第一数据块和第二数据块构成一个数据块对,在所述索引文件中所有数据块对在物理位置上连续排列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910345763.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种HDFS存储小文件的方法及装置
- 下一篇:运维数据处理方法和装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置