[发明专利]一种数据存储方法、装置、终端设备及存储介质有效
申请号: | 201811085178.5 | 申请日: | 2018-09-18 |
公开(公告)号: | CN109597568B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 夏正冬 | 申请(专利权)人: | 天津字节跳动科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 300310 天津市滨海新*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 终端设备 介质 | ||
本公开公开了一种数据存储方法、装置、终端设备及存储介质。其中,该方法包括:根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的数据大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。本公开实施例可以避免现有技术由于使用内存缓存技术,导致的数据丢失的情况,保证数据的完整性的同时,可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
技术领域
本公开实施例涉及日志管理技术,尤其涉及一种数据存储方法、装置、终端设备及存储介质。
背景技术
通常,移动终端将数据写入移动终端的磁盘中,对数据进行存储和管理。例如,数据可以为安装于移动终端的应用程序在运行过程中生成的日志数据。
现有技术中主要有两种数据存储方法。第一种方法是将数据直接写入磁盘文件。例如,应用程序只要产生一条日志,就直接将日志写入磁盘文件。第二种方法是在移动终端上创建一个固定大小的内存缓存,将数据都写入内存缓存。当内存缓存容量满时,一次性将内存缓存中的数据写入磁盘文件,并清空内存缓存。例如,在移动终端上创建一个固定大小的内存缓存,产生的每一条日志数据都写入内存缓存。当内存缓存容量满时,一次性将内存缓存中的日志写入磁盘文件,并清空内存缓存。
发明人在实现本公开的过程中,发现第一种方法中,每个数据的写入都会产生一次输入/输出(I/O)操作。这样必然会导致频繁的I/O操作,不仅浪费太多的时间,而且还增加了系统的功耗。而且由于数据写入过程使用了普通的I/O方式,移动终端的物理内存会出现重复的物理内存页,导致不必要的内存消耗。第二种方法中,虽然有效降低了I/O操作,但是由于内存缓存技术本身的缺陷,在某些情况会出现丢失数据的现象。
发明内容
本公开提供一种数据存储方法、装置、终端设备及存储介质,以实现在避免数据丢失的情况,保证数据的完整性的同时,有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
第一方面,本公开实施例提供了一种数据存储方法,包括:
根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;
根据数据缓存区域与磁盘中的磁盘缓存数据之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;
当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
上述方案中,可选的是,在如果检测到待存储数据,则将待存储数据写入内存中的数据缓存区域之前,还包括:
通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
上述方案中,可选的是,将磁盘缓存文件中的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中的缓存数据,包括:
将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;
在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
上述方案中,可选的是,在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入至磁盘存储文件,并对应删除数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
上述方案中,可选的是,待存储数据包括目标应用程序在运行过程中生成的日志数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津字节跳动科技有限公司,未经天津字节跳动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811085178.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理方法和装置
- 下一篇:在存储器装置的单个引脚上多路复用相异信号
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置