CN109597568B - 一种数据存储方法、装置、终端设备及存储介质 - Google Patents
一种数据存储方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN109597568B CN109597568B CN201811085178.5A CN201811085178A CN109597568B CN 109597568 B CN109597568 B CN 109597568B CN 201811085178 A CN201811085178 A CN 201811085178A CN 109597568 B CN109597568 B CN 109597568B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- disk
- file
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013500 data storage Methods 0.000 title claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 41
- 238000005516 engineering process Methods 0.000 claims abstract description 18
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开公开了一种数据存储方法、装置、终端设备及存储介质。其中,该方法包括:根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的数据大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。本公开实施例可以避免现有技术由于使用内存缓存技术,导致的数据丢失的情况,保证数据的完整性的同时,可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
Description
技术领域
本公开实施例涉及日志管理技术,尤其涉及一种数据存储方法、装置、终端设备及存储介质。
背景技术
通常,移动终端将数据写入移动终端的磁盘中,对数据进行存储和管理。例如,数据可以为安装于移动终端的应用程序在运行过程中生成的日志数据。
现有技术中主要有两种数据存储方法。第一种方法是将数据直接写入磁盘文件。例如,应用程序只要产生一条日志,就直接将日志写入磁盘文件。第二种方法是在移动终端上创建一个固定大小的内存缓存,将数据都写入内存缓存。当内存缓存容量满时,一次性将内存缓存中的数据写入磁盘文件,并清空内存缓存。例如,在移动终端上创建一个固定大小的内存缓存,产生的每一条日志数据都写入内存缓存。当内存缓存容量满时,一次性将内存缓存中的日志写入磁盘文件,并清空内存缓存。
发明人在实现本公开的过程中,发现第一种方法中,每个数据的写入都会产生一次输入/输出(I/O)操作。这样必然会导致频繁的I/O操作,不仅浪费太多的时间,而且还增加了系统的功耗。而且由于数据写入过程使用了普通的I/O方式,移动终端的物理内存会出现重复的物理内存页,导致不必要的内存消耗。第二种方法中,虽然有效降低了I/O操作,但是由于内存缓存技术本身的缺陷,在某些情况会出现丢失数据的现象。
发明内容
本公开提供一种数据存储方法、装置、终端设备及存储介质,以实现在避免数据丢失的情况,保证数据的完整性的同时,有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
第一方面,本公开实施例提供了一种数据存储方法,包括:
根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;
根据数据缓存区域与磁盘中的磁盘缓存数据之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;
当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
上述方案中,可选的是,在如果检测到待存储数据,则将待存储数据写入内存中的数据缓存区域之前,还包括:
通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
上述方案中,可选的是,将磁盘缓存文件中的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中的缓存数据,包括:
将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;
在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
上述方案中,可选的是,在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入至磁盘存储文件,并对应删除数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
上述方案中,可选的是,待存储数据包括目标应用程序在运行过程中生成的日志数据。
上述方案中,可选的是,在将待存储数据写入内存中的文件缓存区域之前,还包括:对待存储数据进行加密。
上述方案中,可选的是,还包括:
如果检测到目标应用程序的开启指令,则判断磁盘缓存文件当前是否存储有未写入至磁盘存储文件的缓存数据;
若是,则将磁盘缓存文件中当前存储的缓存数据加入数据写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。
第二方面,本公开实施例还提供了一种数据存储装置,包括:
第一数据写入模块,用于根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;
数据同步写入模块,用于根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;
第二数据写入模块,用于当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
上述方案中,可选的是,还包括:
关系建立模块,用于通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
上述方案中,可选的是,第二数据写入模块包括:
数据加入单元,用于将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;
数据写入单元,用于在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
上述方案中,可选的是,在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入至磁盘存储文件,并对应删除数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
上述方案中,可选的是,待存储数据包括目标应用程序在运行过程中生成的日志数据。
上述方案中,可选的是,还包括:
数据加密模块,用于对待存储数据进行加密。
上述方案中,可选的是,还包括:
数据检测模块,用于如果检测到目标应用程序的开启指令,则判断磁盘缓存文件当前是否存储有未写入至磁盘存储文件的缓存数据;
当前数据写入模块,用于若是,则将磁盘缓存文件中当前存储的缓存数据加入数据写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。
第三方面,本公开实施例还提供了一种终端设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本公开实施例所述的数据存储方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本公开实施例所述的数据存储方法。
本公开实施例通过根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将写入内存中的数据缓存区域的待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,可以避免现有技术由于使用内存缓存技术,导致的数据丢失的情况,保证数据的完整性的同时,可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
附图说明
图1为本公开实施例提供的一种数据存储方法的流程图;
图2为本公开实施例提供的一种数据存储方法的流程图;
图3为本公开实施例提供的一种数据存储方法的流程图;
图4为本公开实施例提供的一种数据存储装置的结构示意图;
图5为本公开实施例提供的一种终端设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。
图1为本公开实施例提供的一种数据存储方法的流程图,本实施例可适用于进行数据存储的情况,该方法可以由数据存储方装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于终端设备,例如,移动终端中。如图1所示,该方法可以包括如下步骤:
步骤101、根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域。
其中,待存储数据为终端设备中生成的需要存储至硬盘的数据。可选的,待存储数据可以为安装于终端设备中的应用程序在运行过程中生成的日志数据。
数据缓存区域为内存中用于缓存待存储数据的区域。预先在内存中创建数据缓存区域。在检测到终端设备中生成的待存储数据后,根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域。
步骤102、根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件。
其中,内存映射技术就是将磁盘上的数据映射到系统内存中,对内存的修改可以同步到对磁盘数据的修改。内存映射技术可以对大量数据进行处理,并且不需执行I/O操作,可以提高数据的读写速度。
磁盘缓存文件为磁盘中的用于缓存待存储数据的文件。终端设备初始化时,创建预设容量的磁盘缓存文件。通过预先在内存中设置的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系,可以将对预先在内存中设置数据缓存区域的执行的数据写入操作同步到对磁盘缓存文件。每一个待存储数据写入内存中的数据缓存区域,由于内存映射技术,都会作为缓存数据同步写入到磁盘缓存文件。
步骤103、当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
其中,容量阈值条件为预先设置的用于触发将磁盘缓存文件中的缓存数据写入磁盘中的磁盘存储文件的操作的触发条件。通过在磁盘缓存文件的文件大小满足容量阈值条件时,再将磁盘缓存文件中当前存储的全部缓存数据写入磁盘中的磁盘存储文件,可以有效减少数据写入磁盘存储文件的次数,降低系统功耗。
可选的,容量阈值条件为磁盘缓存文件的文件大小达到磁盘缓存文件的预设容量。当确定磁盘缓存文件的文件大小达到磁盘缓存文件的预设容量时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。当磁盘缓存文件的文件大小未达到磁盘缓存文件的预设容量时,继续根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件。
本实施例的技术方案,通过根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将写入内存中的数据缓存区域的待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,可以避免现有技术由于使用内存缓存技术,导致的数据丢失的情况,保证数据的完整性,同时可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
图2为本公开实施例提供的一种数据存储方法的流程图,本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,在如果检测到待存储数据,则将所述待存储数据写入内存中的数据缓存区域之前,可以还包括:通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
如图2所示,该方法可以包括如下步骤:
步骤201、通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
其中,终端设备预先创建数据缓存区域,然后调用内存映射函数mmap(),实现磁盘中的磁盘缓存文件的物理地址和内存中的数据缓存区域的虚拟地址的一一映射关系,即建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
步骤202、根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域。
步骤203、根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件。
步骤204、当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
在本实施例的一个可选的实施方式中,待存储数据包括目标应用程序在运行过程中生成的日志数据。
其中,日志数据是应用程序的必要组成部分,主要用于保存应用程序中的信息和数据。应用程序将日志写入移动终端的磁盘文件中。在应用程序出现问题时,日志数据很有可能是跟踪定位问题的唯一的依据和线索,所以终端设备将日志数据存储至硬盘,对日志数据进行存储和管理。具体的,通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。根据检测到的目标应用程序在运行过程中生成的日志数据,将日志数据写入内存中的与目标应用程序对应的数据缓存区域。根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将日志数据作为缓存数据同步写入与目标应用程序对应的磁盘缓存文件。当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的与目标应用程序对应的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
由此,可以避免现有技术由于使用内存缓存技术,导致的日志数据丢失的情况,保证日志数据的完整性,同时可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
本实施例的技术方案,通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系,可以将对预先在内存中设置数据缓存区域的执行的数据写入操作同步到对磁盘缓存文件,有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
在本实施例的一个可选的实施方式中,在将待存储数据写入内存中的文件缓存区域之前,还包括:对待存储数据进行加密。
其中,在检测到待存储数据后,根据预设加密规则对待存储数据进行加密后,将待存储数据写入内存中的数据缓存区域。预设加密规则可以为数据加密算法(DataEncryption Algorithm,DEA)。由此,可以提高数据安全性,降低损失。
在本实施例的一个可选的实施方式中,在将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件之后,还包括:如果接收到数据获取请求,则根据数据获取请求对磁盘存储文件中的数据进行发送。
其中,移动终端可以接收服务器发送的数据获取请求。数据获取请求用于请求获取磁盘存储文件中的数据。移动终端接收到数据获取请求后,根据数据获取请求,将磁盘存储文件中的数据发送至对应的服务器。由此,可以共享磁盘存储文件中的数据,使服务器可以及时获取移动终端的业务数据。
图3为本公开实施例提供的一种数据存储方法的流程图,本实施例可以与上述一个或者多个实施例中各个可选方案结合,在本实施例中,将磁盘缓存文件中的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中的缓存数据,可以包括:将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
如图3所示,该方法可以包括如下步骤:
步骤301、根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域。
步骤302、根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件。
步骤303、当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据。
其中,数据写入队列为预先设置的用于将磁盘缓存文件中当前存储的缓存数据按时间顺序写入磁盘存储文件的队列。当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的全部缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据,从而将磁盘缓存文件清空。
步骤304、在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
其中,终端设备实时监测数据写入队列中是否存在缓存数据。在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据,从而将磁盘缓存文件中当前存储的缓存数据按时间顺序写入磁盘存储文件。在未检测到数据写入队列中存在缓存数据时,继续监测。
本实施例的技术方案,通过将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据,可以将磁盘缓存文件中当前存储的缓存数据按时间顺序写入磁盘存储文件,保证待存储数据的存储过程的顺序性。
在本实施例的一个可选的实施方式中,在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入至磁盘存储文件,并对应删除数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
其中,终端设备预先创建磁盘写入子线程。磁盘写入子线程用于对数据写入队列进行监测和控制,具体的,终端设备通过磁盘写入子线程实时监测数据写入队列中是否存在缓存数据,在检测到数据写入队列中存在缓存数据时,磁盘写入子线程将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
在本实施例的一个可选的实施方式中,还包括:如果检测到目标应用程序的开启指令,则判断磁盘缓存文件当前是否存储有未写入至磁盘存储文件的缓存数据;若是,则将磁盘缓存文件中当前存储的缓存数据加入文件写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。
其中,目标应用程序开启后,与目标应用程序对应的磁盘缓存文件中可能还有目标应用程序的前次运行过程中未写入磁盘存储文件的当前存储的缓存数据。为了避免当前存储的缓存数据的丢失,如果检测到目标应用程序的开启指令,则判断磁盘缓存文件当前是否存储有未写入至磁盘存储文件的缓存数据。若是,则将磁盘缓存文件中当前存储的缓存数据加入文件写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。终端设备在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。若否,则按照流程对目标应用程序的本次运行过程中的待存储数据进行存储。
由此,可以在目标应用程序开启时,及时将与目标应用程序对应的磁盘缓存文件当前存储的未写入至磁盘存储文件的缓存数据写入与目标应用程序对应的磁盘存储文件,避免当前存储的缓存数据的丢失。
图4为本公开实施例提供的一种数据存储装置的结构示意图,本实施例可适用于进行数据存储的情况。该装置可以采用软件和/或硬件的方式实现,该装置可以配置于终端设备。如图4所示,该装置可以包括:第一数据写入模块401、数据同步写入模块402和第二数据写入模块403。
其中,第一数据写入模块401,用于根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;数据同步写入模块402,用于根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;第二数据写入模块403,用于当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
本实施例的技术方案,通过根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将写入内存中的数据缓存区域的待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,可以避免现有技术由于使用内存缓存技术,导致的数据丢失的情况,保证数据的完整性,同时可以有效降低输入/输出操作的频次,降低系统功耗,提高系统性能。
可选的,在上述技术方案的基础上,可以还包括:
关系建立模块,用于通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
可选的,在上述技术方案的基础上,第二数据写入模块403可以包括:
数据加入单元,用于将磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;
数据写入单元,用于在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入磁盘存储文件,并对应删除数据写入队列中的缓存数据。
可选的,在上述技术方案的基础上,在检测到数据写入队列中存在缓存数据时,将数据写入队列中的缓存数据写入至磁盘存储文件,并对应删除数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
可选的,在上述技术方案的基础上,待存储数据可以包括目标应用程序在运行过程中生成的日志数据。
可选的,在上述技术方案的基础上,可以还包括:数据加密模块,用于对待存储数据进行加密。
可选的,在上述技术方案的基础上,可以还包括:
数据检测模块,用于如果检测到目标应用程序的开启指令,则判断磁盘缓存数据当前是否存储有未写入至磁盘存储数据的缓存数据;
当前数据写入模块,用于若是,则将磁盘缓存数据中当前存储的缓存数据加入数据写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。
图5为本公开实施例提供的一种终端设备的结构示意图。终端设备可以以各种形式来实施,本公开中的终端设备可以包括但不限于诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、车载终端设备、车载显示终端、车载电子后视镜等等的移动终端设备以及诸如数字TV、台式计算机等等的固定终端设备。
如图5所示,终端设备510可以包括无线通信单元501、A/V(音频/视频)输入单元502、用户输入单元503、感测单元504、输出单元505、存储器506、接口单元507、处理器508和电源单元509等等。图5示出了具有各种组件的终端设备,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。
其中,无线通信单元501允许终端设备510与无线通信系统或网络之间的无线电通信。A/V输入单元502用于接收音频或视频信号。用户输入单元503可以根据用户输入的命令生成键输入数据以控制终端设备的各种操作。感测单元504检测终端设备510的当前状态、终端设备510的位置、用户对于终端设备510的触摸输入的有无、终端设备510的取向、终端设备510的加速或减速移动和方向等等,并且生成用于控制终端设备510的操作的命令或信号。接口单元507用作至少一个外部装置与终端设备510连接可以通过的接口。输出单元505被构造为以视觉、音频和/或触觉方式提供输出信号。存储器506可以存储由处理器508执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据。存储器506可以包括至少一种类型的存储介质。而且,终端设备510可以与通过网络连接执行存储器506的存储功能的网络存储装置协作。处理器508通常控制终端设备的总体操作。另外,处理器508可以包括用于再现或回放多媒体数据的多媒体模块。处理器508可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。电源单元509在处理器508的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
处理器508通过运行存储在存储器506中的程序,从而执行各种功能应用以及数据处理,例如实现本公开实施例所提供的一种数据存储方法,该方法具体可以包括:根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例所提供的一种数据存储方法,该方法具体可以包括:根据检测到的待存储数据,将待存储数据写入内存中的数据缓存区域;根据数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将待存储数据作为缓存数据同步写入磁盘缓存文件;当确定磁盘缓存文件的文件大小满足容量阈值条件时,将磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除磁盘缓存文件中当前存储的缓存数据。
本公开实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
根据检测到的待存储数据,将所述待存储数据写入内存中的数据缓存区域;
根据所述数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将所述待存储数据作为缓存数据同步写入所述磁盘缓存文件;其中,磁盘缓存文件为磁盘中的用于缓存待存储数据的文件;通过预先在内存中设置的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系,每一个待存储数据写入内存中的数据缓存区域,都会作为缓存数据同步写入到磁盘缓存文件;
当确定所述磁盘缓存文件的文件大小满足容量阈值条件时,将所述磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除所述磁盘缓存文件中当前存储的缓存数据。
2.根据权利要求1所述的方法,其特征在于,在如果检测到待存储数据,则将所述待存储数据写入内存中的文件缓存区域之前,还包括:
通过内存映射技术建立内存中的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系。
3.根据权利要求1所述的方法,其特征在于,所述将所述磁盘缓存文件中的所述缓存数据写入磁盘中的磁盘存储文件,并对应删除所述磁盘缓存文件中的所述缓存数据,包括:
将所述磁盘缓存文件中当前存储的缓存数据加入数据写入队列,并对应删除磁盘缓存文件中的当前存储的缓存数据;
在检测到所述数据写入队列中存在缓存数据时,将所述数据写入队列中的所述缓存数据写入所述磁盘存储文件,并对应删除所述数据写入队列中的缓存数据。
4.根据权利要求3所述的方法,其特征在于:
所述在检测到所述数据写入队列中存在缓存数据时,将所述数据写入队列中的所述缓存数据写入至所述磁盘存储文件,并对应删除所述数据写入队列中的缓存数据的操作,通过磁盘写入子线程实现。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述待存储数据包括目标应用程序在运行过程中生成的日志数据。
6.根据权利要求5所述的方法,其特征在于,在将所述待存储数据写入内存中的文件缓存区域之前,还包括:
对所述待存储数据进行加密。
7.根据权利要求5所述的方法,其特征在于,还包括:
如果检测到所述目标应用程序的开启指令,则判断所述磁盘缓存文件当前是否存储有未写入至所述磁盘存储文件的缓存数据;
若是,则将所述磁盘缓存文件中当前存储的缓存数据加入数据写入队列中,并对应删除磁盘缓存文件中的当前存储的缓存数据。
8.一种数据存储装置,其特征在于,包括:
第一数据写入模块,用于根据检测到的待存储数据,将所述待存储数据写入内存中的数据缓存区域;
数据同步写入模块,用于根据所述数据缓存区域与磁盘中的磁盘缓存文件之间内存映射关系,将所述待存储数据作为缓存数据同步写入所述磁盘缓存文件;其中,磁盘缓存文件为磁盘中的用于缓存待存储数据的文件;通过预先在内存中设置的数据缓存区域与磁盘中的磁盘缓存文件之间的内存映射关系,每一个待存储数据写入内存中的数据缓存区域,都会作为缓存数据同步写入到磁盘缓存文件;
第二数据写入模块,用于当确定所述磁盘缓存文件的文件大小满足容量阈值条件时,将所述磁盘缓存文件中当前存储的缓存数据写入磁盘中的磁盘存储文件,并对应删除所述磁盘缓存文件中当前存储的缓存数据。
9.一种终端设备,其特征在于,所述终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811085178.5A CN109597568B (zh) | 2018-09-18 | 2018-09-18 | 一种数据存储方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811085178.5A CN109597568B (zh) | 2018-09-18 | 2018-09-18 | 一种数据存储方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597568A CN109597568A (zh) | 2019-04-09 |
CN109597568B true CN109597568B (zh) | 2022-03-04 |
Family
ID=65956981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811085178.5A Active CN109597568B (zh) | 2018-09-18 | 2018-09-18 | 一种数据存储方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597568B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10880583B2 (en) | 2019-04-26 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Method, apparatus, terminal, and readable storage medium for offline caching |
CN110267077B (zh) * | 2019-04-26 | 2020-11-06 | 创新先进技术有限公司 | 离线缓存方法、装置、终端及可读存储介质 |
CN111914116B (zh) | 2019-05-09 | 2024-04-05 | 浙江宇视科技有限公司 | 视频数据存储方法、装置、终端设备及可读存储介质 |
CN110253566B (zh) * | 2019-05-22 | 2022-03-29 | 深圳镁伽科技有限公司 | 运动控制部件、运动控制方法、机器人及运动控制系统 |
CN110253565B (zh) * | 2019-05-22 | 2021-07-20 | 深圳镁伽科技有限公司 | 运动控制部件、运动控制方法、机器人及运动控制系统 |
CN112565870B (zh) | 2019-09-26 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 内容的缓存和读取方法、客户端及存储介质 |
CN112749398B (zh) * | 2019-10-31 | 2022-10-25 | 上海哔哩哔哩科技有限公司 | 数据传输通道控制方法和系统 |
CN111367880A (zh) * | 2020-02-05 | 2020-07-03 | 北京华电天仁电力控制技术有限公司 | 一种通用实时数据存储管理系统及其实现方法 |
CN111352590B (zh) * | 2020-02-26 | 2023-06-09 | 上海霄云信息科技有限公司 | 文件存储方法及设备 |
CN111399769B (zh) * | 2020-02-26 | 2021-01-26 | 武汉思普崚技术有限公司 | 一种mime格式上传文件的存储方法及装置 |
CN111309702A (zh) * | 2020-02-28 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种文件内、文件间聚合方法及系统 |
CN111767009A (zh) * | 2020-06-24 | 2020-10-13 | 中国工商银行股份有限公司 | 磁盘清理方法、装置及设备 |
CN112000589A (zh) * | 2020-07-13 | 2020-11-27 | 北京奇艺世纪科技有限公司 | 一种数据写入方法、数据读取方法、装置及电子设备 |
CN112416261A (zh) * | 2020-12-11 | 2021-02-26 | 上海中通吉网络技术有限公司 | 数据存储方法、装置、设备及系统、存储介质 |
CN112929463A (zh) * | 2021-01-26 | 2021-06-08 | 网宿科技股份有限公司 | 一种基于dns的流量代理方法、服务器及系统 |
CN112799595B (zh) * | 2021-02-02 | 2023-06-23 | 联想(北京)有限公司 | 数据处理方法、设备及存储介质 |
CN113360571A (zh) * | 2021-06-03 | 2021-09-07 | 广东电网有限责任公司 | 基于特征标记的电网监控系统内存库关系库同步方法 |
CN113452808B (zh) * | 2021-06-29 | 2023-06-23 | 百果园技术(新加坡)有限公司 | 域名解析方法、装置、设备及存储介质 |
CN114371815B (zh) * | 2021-12-13 | 2024-05-28 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN115657954B (zh) * | 2022-11-01 | 2023-06-20 | 昆仑数智科技有限责任公司 | 数据处理方法及装置 |
CN116257493A (zh) * | 2022-12-29 | 2023-06-13 | 北京京桥热电有限责任公司 | 一种基于缓存机制的opc穿网闸接口 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541757A (zh) * | 2011-11-30 | 2012-07-04 | 华为技术有限公司 | 写缓存方法、缓存同步方法和装置 |
CN105159616A (zh) * | 2015-09-11 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘空间管理方法及装置 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN106776375A (zh) * | 2016-12-27 | 2017-05-31 | 东方网力科技股份有限公司 | 一种磁盘内部的数据缓存方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810050A (zh) * | 2011-05-31 | 2012-12-05 | 深圳市金蝶友商电子商务服务有限公司 | 日志数据写入方法和日志系统 |
US20150347310A1 (en) * | 2014-05-30 | 2015-12-03 | Lsi Corporation | Storage Controller and Method for Managing Metadata in a Cache Store |
CN105677258A (zh) * | 2016-02-23 | 2016-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种日志数据管理方法及系统 |
CN106897231B (zh) * | 2017-02-28 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于高性能存储介质的数据缓存方法及系统 |
CN106844185A (zh) * | 2017-03-17 | 2017-06-13 | 上海与德科技有限公司 | 一种日志文件的存储方法及装置 |
CN107729375B (zh) * | 2017-09-13 | 2021-11-23 | 微梦创科网络科技(中国)有限公司 | 一种日志数据排序的方法及装置 |
-
2018
- 2018-09-18 CN CN201811085178.5A patent/CN109597568B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541757A (zh) * | 2011-11-30 | 2012-07-04 | 华为技术有限公司 | 写缓存方法、缓存同步方法和装置 |
CN105159616A (zh) * | 2015-09-11 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘空间管理方法及装置 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN106776375A (zh) * | 2016-12-27 | 2017-05-31 | 东方网力科技股份有限公司 | 一种磁盘内部的数据缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109597568A (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597568B (zh) | 一种数据存储方法、装置、终端设备及存储介质 | |
CN107750466B (zh) | 使用经同步的提示信号配对附近设备 | |
US20220053068A1 (en) | Methods, apparatuses and computer storage media for applet state synchronization | |
RU2616536C2 (ru) | Способ, устройство и терминальное устройство для отображения сообщений | |
US20200021652A1 (en) | Method and device for synchronizing data, and electronic device | |
KR20140033896A (ko) | 이동 단말기 및 이동 단말기의 제어 방법 | |
CN110825456A (zh) | 加载时间计算方法、装置、计算机设备及存储介质 | |
CN107341015B (zh) | 终端间数据同步方法、装置、终端及存储介质 | |
CN114579055B (zh) | 磁盘存储方法、装置、设备及介质 | |
CN109697034B (zh) | 一种数据写入方法、装置、电子设备及存储介质 | |
CN111597797A (zh) | 社交圈消息的编辑方法、装置、设备及介质 | |
CN107231283B (zh) | 消息管理方法及装置、消息预读方法及装置 | |
WO2024139279A1 (zh) | 访问控制列表规则配置方法、装置、电子设备及存储介质 | |
KR101987463B1 (ko) | 이동 단말기 및 이동 단말기의 제어 방법 | |
CN113253956B (zh) | 打印文件处理方法及装置 | |
US20140259155A1 (en) | Process authentication method and electronic device implementing the same | |
US9311490B2 (en) | Delivery of contextual data to a computing device while preserving data privacy | |
US11327845B2 (en) | Image synchronization method and device, and server | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN109308164B (zh) | 一种系统迁移的方法和装置 | |
US20190294806A1 (en) | Method and system for implementing data secure deletion in mobile terminal | |
US9980132B2 (en) | Method for detecting messages and call request and electronic device adapted thereto | |
CN116456131B (zh) | 特效渲染方法、装置、电子设备及存储介质 | |
CN111447353B (zh) | 图像采集的方法、装置、电子设备和存储介质 | |
WO2022135302A1 (zh) | 一种选择文本的方法、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220825 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Patentee after: LIANMENG TECHNOLOGY (SHENZHEN) CO.,LTD. Address before: 300310 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, Binhai New Area, Tianjin Patentee before: TIANJIN BYTEDANCE TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |