[发明专利]数据存储方法、装置、计算机设备和存储介质在审
申请号: | 202010676941.2 | 申请日: | 2020-07-14 |
公开(公告)号: | CN113934362A | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 凌国 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 李文渊 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 存储 方法 装置 计算机 设备 介质 | ||
本申请涉及一种数据存储方法、装置、计算机设备和存储介质。所述方法包括:获取内存块的内存占用量;当所述内存块的内存占用量达到内存阈值时,对所述内存块进行数据重整,以确定所述内存块中的待回写数据;获取所述待回写数据对应的校验数据;将所述校验数据写入目标文件的文件头,并即时调用用于将内存数据与文件数据进行同步的系统函数,将所述待回写数据回写至所述目标文件;其中,所述文件头中的校验数据,用于在读取所述目标文件中数据时进行数据完整性校验。采用本方法能够能够即时地将待回写数据写入文件中,由此提高了写入文件中的回写数据的完整性,从而能够有效降低数据回写过程中的损坏率。
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据存储方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的迅速发展,可通过各种应用程序和操作系统等对大量数据进行处理,以实现各种功能。在数据处理中,经常会涉及到对内存和磁盘文件等的I/O操作,即读操作和/或写操作。
目前的方式中,通常是先将数据写到内存中进行缓存后,再回写到磁盘文件,以提高数据读写性能。然而,这种方式通常由操作系统确定何时回写内存映射文件中的数据,数据回写可能不及时。若发生设备断电、设备重启等情形时,可能会造成文件损坏或数据丢失。
发明内容
基于此,有必要针对上述技术问题,提供一种数据存储方法、装置、计算机设备和存储介质,能够即时有效地将待回写数据写入文件中,由此提高了写入文件中的回写数据的完整性,从而能够有效降低数据回写过程中的损坏率。
一种数据存储方法,所述方法包括:
获取内存块的内存占用量;
当所述内存块的内存占用量达到内存阈值时,对所述内存块进行数据重整,以确定所述内存块中的待回写数据;
获取所述待回写数据对应的校验数据;
将所述校验数据写入目标文件的文件头,并即时调用用于将内存数据与文件数据进行同步的系统函数,将所述待回写数据回写至所述目标文件;
其中,所述文件头中的校验数据,用于在读取所述目标文件中数据时进行数据完整性校验。
一种数据存储装置,所述装置包括:
数据获取模块,用于获取内存块的内存占用量;
数据重整模块,用于当所述内存块的内存占用量达到内存阈值时,对所述内存块进行数据重整,以确定所述内存块中的待回写数据;
所述数据获取模块还用于获取所述待回写数据对应的校验数据;
数据回写模块,用于将所述校验数据写入目标文件的文件头,并即时调用用于将内存数据与文件数据进行同步的系统函数,将所述待回写数据回写至所述目标文件;其中,所述文件头中的校验数据,用于在读取所述目标文件中数据时进行数据完整性校验。
在其中一个实施例中,所述数据获取模块还用于当应用程序向内存块写入数据时,获取所述应用程序触发的数据写入请求;所述数据写入请求用于请求基于内存映射文件向所述内存块中写入数据;根据所述数据写入请求,解析所述内存映射文件,获得所述内存块的内存占用量。
在其中一个实施例中,所述内存块中的内存数据包括键值对,所述键值对包括关键字和对应的值;所述数据重整模块还用于基于所述内存块中键值对的关键字,对所述内存块中的键值对进行去重处理,获得所述内存块中的有效数据;将所述有效数据确定为所述内存块中的待回写数据。
在其中一个实施例中,所述数据重整模块还用于获取所述内存块中内存数据的操作记录;根据所述操作记录,从所述内存数据中筛选出所述内存块中键值对的关键字所对应的值在经过操作后的最新值;将所述关键字和对应的最新值确定为所述内存块中的有效数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010676941.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据处理方法和系统
- 下一篇:一种电能表掉电检测方法及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置