CN111143899A - 存储数据的方法、装置、存储介质及电子装置 - Google Patents
存储数据的方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN111143899A CN111143899A CN201811315005.8A CN201811315005A CN111143899A CN 111143899 A CN111143899 A CN 111143899A CN 201811315005 A CN201811315005 A CN 201811315005A CN 111143899 A CN111143899 A CN 111143899A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- time period
- data set
- storage success
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 118
- 230000002159 abnormal effect Effects 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 description 30
- 238000011084 recovery Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 8
- 230000008707 rearrangement Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明提供了一种存储数据的方法、装置、存储介质及电子装置,该方法包括:在第一时刻检测到第一装置从掉电状态切换到上电状态;在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。通过本发明,解决了当***中的处理节点掉电重启后,存储的数据重复和丢失问题,进而达到了保证存储的数据不重复和不丢失的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种存储数据的方法、装置、存储介质及电子装置。
背景技术
分布式环境下,往往对数据保存的完整性和一致性有着很严格的要求,比如不允许最终输出数据有重复记录、不允许有数据丢失等。
图1示出了分布式环境下的数据采集、数据传输、数据处理和数据保存功能。其中上游的数据采集节点(简称为采集节点)首先通过某种协议(比如流水号停等应答协议、GTP协议(通用分组无线业务隧道协议)、Diameter(路由代表)协议等)实时地从数据发生器采集数据,并将采集数据保存到磁盘(这部分数据称为原始数据),同时再把采集数据转发到下游的数据处理节点(简称为处理节点)。采集节点确认处理节点接收到数据之后(接收到处理节点返回的响应消息)再向数据发生器回复数据已接收的响应,处理节点对接收到的数据进行再处理然后再将处理后数据(这部分数据称为最终数据)保存到磁盘。
上面是分布式环境下一个正常的数据采集、处理和数据保存的过程,但因为数据源自身和网络、协议等原因处理节点往往会收到重复数据,为了保证最终数据的唯一性,处理节点在保存最终数据前往往需要判断该数据是否和之前保存的数据有重复,如果重复则不需要再做保存,实际上这也是一种很常用的数据排重方法。数据排重时考虑到最终数据记录可能很大、排重周期较长等因素,如果仅仅根据最终数据记录进行排重时对***资源消耗很大,对***性能也有较大影响,所以最理想的做法是根据几个关键字段来进行排重。排重关键字段组成的数据即排重数据,排重数据和最终数据一样也需要保存在磁盘上,以便于重启时从排重数据文件中读取排重信息进行正常的排重工作。
正常情况下处理节点是可以通过上述数据排重机制来保证最终数据的完整性以及唯一性,但如果处理节点有突发异常(比如掉电等),数据就很难保证是否完整和唯一了(异常时内存中的相关最终数据和排重数据不能及时保存到磁盘)。下面我们来分析下上述这种分布式环境下节点出现掉电异常时数据重复和数据丢失的一般处理情况及其可能碰到的问题:
1、采集节点掉电
采集节点掉电重启后数据发生器会根据相应协议对采集节点掉电前发送但未收到响应的数据进行重发(已收到响应的数据则说明采集节点已经成功转发给处理节点了),采集节点收到重发数据后转发给处理节点,处理节点将处理后的最终数据根据排重数据进行排重即可,所以单纯的采集节点掉电不存在数据重复和数据丢失问题。
2、处理节点掉电
因为处理节点内存中数据可能丢失,所以采集节点需要将缓存的历史发送原始数据(采集节点发送原始数据给处理节点时需要将最近的发送数据缓存起来)重发给处理节点进行处理和保存,但由于处理节点在掉电前保存的最终数据和排重数据不能保证一致,所以就会产生数据重复问题(掉电前保存的排重数据少于最终数据)或数据丢失问题(掉电前保存的排重数据多于最终数据)。
3、所有节点掉电
因为处理节点内存中数据可能丢失,所以采集节点需要读取掉电前保存的原始数据并发送给处理节点进行处理保存,但由于处理节点在掉电前保存的最终数据和排重数据不能保证一致,所以就产生数据重复问题(掉电前保存的排重数据少于最终数据)或数据丢失问题(掉电前保存的排重数据多于最终数据)。
针对相关技术中当***中的处理节点掉电重启后,存储的数据的重复和丢失的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种存储数据的方法、装置、存储介质及电子装置,以至少解决相关技术中当***中的处理节点掉电重启后,存储的数据的重复和丢失的问题。
根据本发明的一个实施例,提供了一种存储数据的方法,包括:在第一时刻检测到第一装置从掉电状态切换到上电状态;在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,通过删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
可选地,在检测是否设置有第一存储成功标识之后,还包括:在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。
可选地,在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,所述方法还包括:在通过所述第一装置存储第二时间段内待存储的第二数据集合之前,通过所述第一装置删除所述第一存储成功标识;在通过所述第一装置存储第二时间段内待存储的第二数据集合之后,所述方法还包括:通过所述第一装置设置所述第一存储成功标识。
可选地,在第一时刻检测到第一装置从掉电状态切换到上电状态之前,所述方法还包括:所述第一装置获取第一处理数据集合与第一关键字数据集合,其中,所述第一数据集合包括第一处理数据集合与第一关键字数据集合,所述第一处理数据集合中的第一处理数据与所述第一关键字数据集合中的第一关键字数据一一对应,所述第一关键字数据用于判断所述第一装置中是否存储了所述第一处理数据;所述第一装置存储所述第一时间段内待存储的所述第一数据集合,其中,在所述第一装置存储所述第一时间段内待存储的所述第一数据集合的过程中或在所述第一装置成功存储所述第一时间段内待存储的所述第一数据集合之后,所述第一装置从上电状态切换到掉电状态。
可选地,所述第一装置获取第一处理数据集合与第一关键字数据集合包括:所述第一装置接收到第二装置发送的原始数据;所述第一装置对所述原始数据进行处理,得到所述第一处理数据集合。
可选地,在所述第一装置接收到第二装置发送的原始数据之后,包括:所述第二装置存储发送给所述第一装置的所述原始数据。
根据本发明的另一个实施例,提供了一种存储数据的装置,包括:第一检测模块,用于在第一时刻检测到第一装置从掉电状态切换到上电状态;第二检测模块,用于在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;存储模块,用于在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
可选地,所述装置还包括:存储模块,用于在检测是否设置有第一存储成功标识之后,在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于当检测到第一装置从掉电状态到上电状态时,经过确认第一装置中未设置正常的第一存储成功标志后,通过第一装置重新存储第一数据集合。因此,可以解决当***掉电重启后,存储的数据重复和丢失的问题,达到保证存储的数据不重复和不丢失的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的分布式环境下的数据采集、传输、处理和保存的流程图;
图2是本发明实施例的一种存储数据的方法的移动终端的硬件结构框图;
图3是根据本发明实施例的存储数据的流程图;
图4是根据本发明实施例的数据采集处理消息交互流程图;
图5是根据本发明实施例的处理节点对原始数据的处理和排重流程图;
图6是根据本发明实施例数据存储流程图;
图7是根据本发明可选实施例的数据恢复流程图;
图8是根据本发明可选实施例的原始数据重发流程图;
图9是根据本发明可选实施例的处理节点数据存储的详细流程图;
图10是根据本发明实施例的存储数据的装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图2是本发明实施例的一种存储数据的方法的移动终端的硬件结构框图。如图2所示,移动终端20可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器204,可选地,上述移动终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的种存储数据的方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至移动终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的存储数据的方法,图3是根据本发明实施例的存储数据的流程图,如图3所示,该流程包括如下步骤:
步骤S302,在第一时刻检测到第一装置从掉电状态切换到上电状态;
步骤S304,在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
步骤S306,在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
通过上述步骤,由于当检测到第一装置从掉电状态到上电状态时,经过确认第一装置中未设置正常的第一存储成功标志后,通过第一装置重新存储第一数据集合。因此,可以解决当***中的处理节点掉电重启后,存储的数据的重复和丢失的问题,达到保证数据不重复和不丢失的效果。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
在一个可选实施例中,在检测是否设置有第一存储成功标识之后,还包括:在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。在本实施例中,处理节点(对应于第一装置)接收到原始数据后,开始数据处理和排重工作。在预定的时间段内或者处理一定数据量的原始数据后启动数据存储流程:步骤1),处理节点将内存中的最终数据和排重数据记录到磁盘中,并标记为临时文件;步骤2),新建并保存控制信息文件夹,控制信息文件内容可以为某固定值(对应与第一存储成功标志);步骤3),将保存的最终数据和排重数据临时文件重命名为正式文件。在该时间段内(对应于第一时间段),处理节点掉电,在重新启动处理节点后发现数据存储流程操作并未完成,处理节点需要先完成掉电前的数据存储操作,以保证最终数据和排重数据的一致性(最终数据和排重数据对应于第一数据集合)。当检测到控制信息文件存在且文件内容正常(对应于已设置第一存储成功标志且所述第一存储成功标志正确)。处理节点重复上述步骤,继续完成对剩余原始数据的处理和排重工作和数据存储流程(对应于第一装置存储第二时间段内待存储的第二数据集合)。
在一个可选实施例中,在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,所述方法还包括:在通过所述第一装置存储第二时间段内待存储的第二数据集合之前,通过所述第一装置删除所述第一存储成功标识;在通过所述第一装置存储第二时间段内待存储的第二数据集合之后,所述方法还包括:通过所述第一装置设置所述第一存储成功标识。在本实施例中,数据存储流程还包括在上述实施例的数据存储流程的步骤3)之后还包括:步骤4)删除控制信息文件(对应于第一存储成功标志)。也就是在对第一时间段内的最终数据和排重数据进行数据存储流程中的最后一步删除控制信息文件夹。在完成第一时间段内的数据存储流程后,处理节点继续处理剩余的原始数据并启动第二时间段内的数据存储流程。第二时间段内的数据存储流程与第一时间段内的数据存储流程相同。在本实施例中,在数据存储流程中也可以不删除第一存储成功标志,而在第一时间段内和第二时间段内分别设置不同的存储成功标志。具体可以为,处理节点(对应于第一装置)在对第一时间段内的最终数据和排重数据进行数据存储流程中设置的是第一存储成功标志,在第二时间段内设置的是第二存储成功标志。第一存储成功标志和第二存储成功标志是不同的两种标志。例如,在第一时间段内创建第一控制信息文件夹,第一控制信息文件夹中的内容可以为123,在第二时间段内创建第二控制信息文件夹,第二控制信息文件夹中的内容是456。控制信息文件夹中的内容在此并不唯一,可以为任意内容,123和456仅代表第一控制信息文件夹和第二控制信息文件夹是不同的两个文件夹。
在一个可选实施例中,在第一时刻检测到第一装置从掉电状态切换到上电状态之前,所述方法还包括:所述第一装置获取第一处理数据集合与第一关键字数据集合,其中,所述第一数据集合包括第一处理数据集合与第一关键字数据集合,所述第一处理数据集合中的第一处理数据与所述第一关键字数据集合中的第一关键字数据一一对应,所述第一关键字数据用于判断所述第一装置中是否存储了所述第一处理数据;所述第一装置存储所述第一时间段内待存储的所述第一数据集合,其中,在所述第一装置存储所述第一时间段内待存储的所述第一数据集合的过程中或在所述第一装置成功存储所述第一时间段内待存储的所述第一数据集合之后,所述第一装置从上电状态切换到掉电状态。在本实施例中,处理节点在采集节点中获取源数据,对源数据进行处理后得到最终数据。处理节点在保存最终数据前往往需要判断该数据是否和之前保存的数据是否有重复,如果重复则不需要再保存。在***正常的情况下(处理节点没有掉电),处理节点通过检查是否存在排重数据决定是否存储与该排重数据对应的最终数据,若存在则不再存储与该排重数据对应的最终数据,若不存在则继续存储与该排重数据对应的最终数据。因此,排重数据是为了保证处理节点所存储的最终数据是唯一的。因此,处理节点(对应于第一装置)存储的第一数据集合中包括最终数据(对应于第一处理数据集合)和排重数据(对应于第一关键字数据集合)。其中,最终数据和排重数据是一一对应的。然而,当处理节点掉电的情况下,会出现存储的最终数据重复或者丢失的情况,例如,存储了排重数据却没保存最终数据,此时处理节点掉电,处理节点重新启动后,发现存在排重数据,那么此时处理节点不会再保存与该排重数据对应的最终数据,此时出现最终数据的丢失。另外一种情况是,存储了最终数据却没存储排重数据,此时处理节点掉电,处理节点重新启动后,发现没有与该最终数据对应的排重数据,那么处理节点会再存储一遍该最终数据,此时出现最终数据重复。
在一个可选实施例中,所述第一装置获取第一处理数据集合与第一关键字数据集合包括:所述第一装置接收到第二装置发送的原始数据;所述第一装置对所述原始数据进行处理,得到所述第一处理数据集合。在本实施例中,采集节点(对应于第二装置)在数据发生器中采集原始数据并发给处理节点(对应于第一装置),处理节点对原始数据进行处理后得到最终数据(对应于第一处理数据)。
在一个可选实施例中,在所述第一装置接收到第二装置发送的原始数据之后,包括:所述第二装置存储发送给所述第一装置的所述原始数据。在本实施例中,采集节点(对应于第二装置)中记录最近已发送的原始数据。
下面结合具体实施例,对本申请进一步说明:
具体实施例一
数据采集处理流程(图4为数据采集处理消息交互流程图)包含如下步骤:
步骤401:采集节点(对应于第二装置)从数据发生器实时采集原始数据,将原始数据写入到磁盘,同时将原始数据发送给处理节点(对应于第一装置),另外采集节点上也记录最近已发送的原始数据(如果处理节点发生掉电重启后,采集节点需要重发这部分原始数据给处理节点);
步骤402:处理节点收到采集节点的原始数据后,向采集节点回复响应消息,然后开始后续的数据处理和排重工作(如图5)。首先执行步骤501:处理原始数据并形成最终数据(对应于第一处理数据集合),然后执行步骤502:根据最终数据的排重关键字(对应于第一关键字数据集合)判断该排重数据是否存在于历史排重数据中,如果存在执行步骤503:不保存该最终数据记录,如果不存在执行步骤504:将最终数据和排重数据记录到内存中;
步骤403:采集节点收到处理节点的数据已接收的响应消息后向数据发生器回复响应消息;
当需要产生最终数据文件时(对应于第一时间段),需要启动数据存储流程。在数据存储流程引入了控制信息文件(对应于第一存储成功标志)的概念,控制信息文件是为后面的数据恢复流程所用。数据存储流程简图如图6,大致分为如下几步:
步骤601:将内存中的最终数据(对应于第一处理数据)和排重数据(对应于第一关键字数据)记录到磁盘中,并标记为临时文件;
步骤602:新建并保存控制信息文件,控制信息文件内容可以为某固定值(对应于第一存储成功标志);
步骤603:在控制信息文件存在且正常的情况下,将步骤601中保存的最终数据和排重数据临时文件重命名为正式文件;
步骤604:删除控制信息文件。
数据恢复的第一步是处理节点异常恢复。如果处理节点在启动后发现之前有掉电现象并且发现掉电前的数据存储操作未完成(在存储过程中发生了掉电),处理节点需要先完成掉电前的数据存储操作,以保证最终数据文件和排重数据文件的一致性。数据恢复流程图如图7,该流程包含以下两个分支:
1)控制信息文件不存在或控制信息文件内容异常,这时候执行步骤701:删除数据存储操作过程中的临时文件,以保证最终数据和排重数据的一致性,对于删除的最终数据和排重数据可以通过后续的原始数据重发进行恢复;
2)控制信息文件存在且文件内容正常,继续完成掉电前存储操作,具体包括:步骤702:临时文件重命名,步骤703:删除控制信息文件删除,并继续处理剩余的原始数据,并存储与剩余的原始数据对应的最终数据和排重数据(对应于通过所述第一装置存储第二时间段内待存储的第二数据集合)。
数据恢复的第二步就是原始数据重发,原始数据重发就是采集节点(对应于第二装置)将原始数据重新发送给处理节点(对应于第一装置),防止处理节点掉电前因为数据储流程未完成而出现的最终数据丢失,图8为原始数据重发流程图。具体包括:步骤801:只有处理节点掉电,则采集节点需要将其保存的历史发送原始数据重新发送给处理节点;步骤802:如果包括采集节点等全部节点都掉电重启了,采集节点重启后就需要重新读取原始数据文件并发送给处理节点;
具体实施例二
图9为处理节点(对应于第一装置)数据存储详细流程图,具体步骤说明如下:
步骤901:使用Direct I/O(直接I/O)方式(将内存中的数据直接写入到磁盘中,跳过操作***的文件***缓存)将内存中的最终数据(对应于第一处理数据)存储到磁盘,即最终数据临时文件;
步骤902:使用Direct I/O方式将内存中的排重数据(对应于第一关键字数据)存储到磁盘,即排重数据临时文件;
步骤903:创建控制信息文件,文件内容填写为固定值“infoisok”(对应于第一存储成功标志),并以Direct I/O方式存储到磁盘;
步骤904:重命名最终数据临时文件为最终数据文件;
步骤905:重命名排重数据临时文件为排重数据文件;
步骤906:删除控制信息文件。
具体到数据恢复根据处理节点掉电时数据存储操作在不同阶段有不同的恢复方法,下面假设在图9的几个不同阶段发生了掉电,我们分别举四个具体的数据恢复例子。
情况一
在图9的第901步或第902步之前处理节点掉电了,这样重启后控制信息文件(对应于第一存储成功标志)不存在(掉电前数据存储流程还没走到第903步),具体数据恢复步骤如下:
1、如果存在最终数据临时文件(对应于第一处理数据集合)则删除最终数据临时文件;
2、采集节点(对应于第二装置)原始数据重发,图8为原始数据重发流程图;
3、处理节点(对应于第一装置)接收到采集节点的重发原始数据后正常处理数据(包括图5的数据处理流程和图9的数据存储流程)。
情况二
在图9的第902步或第902步之前处理节点掉电了,这样重启后控制信息文件(对应于第一存储成功标志)也不存在,具体数据恢复步骤如下:
1、删除最终数据临时文件(对应于第一处理数据集合),如果存在排重数据临时文件(对应于第一关键字数据集合)则删除排重数据临时文件;
2、采集节点(对应于第二装置)原始数据重发,图8为原始数据重发流程图;
3、处理节点(对应于第一装置)接收到采集节点的重发原始数据后正常处理数据(包括图5的数据处理流程和图9的数据存储流程)。
情况三
在图9的第903步保存控制信息文件时处理节点(对应于第一装置)掉电了,这样重启后控制信息文件(对应于第一存储成功标志)不存在或文件内容不完整,具体数据恢复步骤如下:
1、删除最终数据临时文件(对应于第一处理数据集合)和排重数据临时文件(对应于第一关键字集合);
2、采集节点原始数据重发,图8为原始数据重发流程图;
3、处理节点接收到采集节点的重发原始数据后正常处理数据(包括图5的数据处理流程和图9的数据存储流程)。
情况四
在图9的第904到906步之间处理节点(对应于第一装置)掉电了,这样重启后由于控制信息文件存在且其内容为“infoisok”(对应于第一存储成功标志),与数据存储流程中的填写值一致,具体数据恢复步骤如下:
1、如果存在最终数据临时文件(对应于第一处理数据),重命名最终数据临时文件为最终数据文件;
2、如果存在排重数据文件(对应于第一关键字数据),重命名排重数据临时文件为排重数据文件;
3、删除控制信息文件(对应于第一存储成功标志)。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种存储数据的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本发明实施例的存储数据的装置的结构框图,如图10所示,该装置包括:
第一检测模块1002,用于在第一时刻检测到第一装置从掉电状态切换到上电状态;
第二检测模块1004,用于在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
删除模块1006,用于在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
在一个可选实施例中,所述装置还包括:存储模块,用于在检测是否设置有第一存储成功标识之后,在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。
在一个可选实施例中,上述装置还用于在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合之前,通过所述第一装置删除所述第一存储成功标识;在通过所述第一装置存储第二时间段内待存储的第二数据集合之后,通过所述第一装置设置所述第一存储成功标识。
在一个可选实施例中,所述第一装置用于在第一时刻检测到第一装置从掉电状态切换到上电状态之前,获取第一处理数据集合与第一关键字数据集合,其中,所述第一数据集合包括第一处理数据集合与第一关键字数据集合,所述第一处理数据集合中的第一处理数据与所述第一关键字数据集合中的第一关键字数据一一对应,所述第一关键字数据用于判断所述第一装置中是否存储了所述第一处理数据;存储所述第一时间段内待存储的所述第一数据集合,其中,在所述第一装置存储所述第一时间段内待存储的所述第一数据集合的过程中或在所述第一装置成功存储所述第一时间段内待存储的所述第一数据集合之后,所述第一装置从上电状态切换到掉电状态。
在一个可选实施例中,所述第一装置用于通过如下方式获取第一处理数据集合与第一关键字数据集合:接收到第二装置发送的原始数据;对所述原始数据进行处理,得到所述第一处理数据集合。
在一个可选实施例中,所述第二装置用于在所述第一装置接收到第二装置发送的原始数据之后,存储发送给所述第一装置的所述原始数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在第一时刻检测到第一装置从掉电状态切换到上电状态;
S2,在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
S3,在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在第一时刻检测到第一装置从掉电状态切换到上电状态;
S2,在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
S3,在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种存储数据的方法,其特征在于,包括:
在第一时刻检测到第一装置从掉电状态切换到上电状态;
在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
2.根据权利要求1所述的方法,其特征在于,在检测是否设置有第一存储成功标识之后,还包括:
在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。
3.根据权利要求2所述的方法,其特征在于,
在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,所述方法还包括:在通过所述第一装置存储第二时间段内待存储的第二数据集合之前,通过所述第一装置删除所述第一存储成功标识;
在通过所述第一装置存储第二时间段内待存储的第二数据集合之后,所述方法还包括:通过所述第一装置设置所述第一存储成功标识。
4.根据权利要求1所述的方法,其特征在于,在第一时刻检测到第一装置从掉电状态切换到上电状态之前,所述方法还包括:
所述第一装置获取第一处理数据集合与第一关键字数据集合,其中,所述第一数据集合包括所述第一处理数据集合与所述第一关键字数据集合,所述第一处理数据集合中的第一处理数据与所述第一关键字数据集合中的第一关键字数据一一对应,所述第一关键字数据用于判断所述第一装置中是否存储了所述第一处理数据;
所述第一装置存储所述第一时间段内待存储的所述第一数据集合,其中,在所述第一装置存储所述第一时间段内待存储的所述第一数据集合的过程中或在所述第一装置成功存储所述第一时间段内待存储的所述第一数据集合之后,所述第一装置从上电状态切换到掉电状态。
5.根据权利要求4所述的方法,其特征在于,所述第一装置获取第一处理数据集合与第一关键字数据集合包括:
所述第一装置接收到第二装置发送的原始数据;
所述第一装置对所述原始数据进行处理,得到所述第一处理数据集合。
6.根据权利要求5所述的方法,其特征在于,在所述第一装置接收到第二装置发送的原始数据之后,包括:
所述第二装置存储发送给所述第一装置的所述原始数据。
7.一种存储数据的装置,其特征在于,包括:
第一检测模块,用于在第一时刻检测到第一装置从掉电状态切换到上电状态;
第二检测模块,用于在所述第一装置处于所述上电状态下,检测是否设置有第一存储成功标识,其中,所述第一存储成功标识用于指示所述第一装置已成功存储第一时间段内待存储的第一数据集合,所述第一时间段早于所述第一时刻;
删除模块,用于在检测出未设置所述第一存储成功标识或第一存储成功标志异常的情况下,删除在所述第一时间段内存储的所述第一数据集合并重新存储所述第一数据集合。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储模块,用于在检测是否设置有第一存储成功标识之后,在检测出已设置所述第一存储成功标识且所述第一存储成功标志正确的情况下,通过所述第一装置存储第二时间段内待存储的第二数据集合,其中,所述第二时间段晚于所述第一时刻。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315005.8A CN111143899A (zh) | 2018-11-06 | 2018-11-06 | 存储数据的方法、装置、存储介质及电子装置 |
PCT/CN2019/116019 WO2020094063A1 (zh) | 2018-11-06 | 2019-11-06 | 存储数据的方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315005.8A CN111143899A (zh) | 2018-11-06 | 2018-11-06 | 存储数据的方法、装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143899A true CN111143899A (zh) | 2020-05-12 |
Family
ID=70516546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811315005.8A Pending CN111143899A (zh) | 2018-11-06 | 2018-11-06 | 存储数据的方法、装置、存储介质及电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111143899A (zh) |
WO (1) | WO2020094063A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760587A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种处理数据的方法和装置 |
CN115794842A (zh) * | 2022-11-02 | 2023-03-14 | 北京明朝万达科技股份有限公司 | 数据处理方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430705A (zh) * | 2008-11-29 | 2009-05-13 | 中兴通讯股份有限公司 | 基于嵌入式数据库的存储方法和装置 |
CN104765628A (zh) * | 2015-03-10 | 2015-07-08 | 惠州Tcl移动通信有限公司 | 一种移动终端更新触摸屏固件的方法及*** |
CN105468544A (zh) * | 2014-09-11 | 2016-04-06 | 深圳市腾讯计算机***有限公司 | 实现防掉电文件***的方法、装置以及防掉电文件*** |
CN105759679A (zh) * | 2015-12-12 | 2016-07-13 | 重庆川仪自动化股份有限公司 | 掉电保护控制器及其掉电保护方法 |
CN106569748A (zh) * | 2016-10-27 | 2017-04-19 | 南方电网科学研究院有限责任公司 | Flash文件***的数据处理方法和装置 |
CN106919474A (zh) * | 2015-12-28 | 2017-07-04 | 中移(苏州)软件技术有限公司 | 一种缓存数据保护方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073792A1 (en) * | 2005-09-28 | 2007-03-29 | Tony Nichols | System and method for removing residual data from memory |
US20100088745A1 (en) * | 2008-10-06 | 2010-04-08 | Fujitsu Limited | Method for checking the integrity of large data items rapidly |
CN105446664B (zh) * | 2015-12-03 | 2018-11-20 | 深圳国微技术有限公司 | 一种对存储器进行文件存储方法和存储装置 |
-
2018
- 2018-11-06 CN CN201811315005.8A patent/CN111143899A/zh active Pending
-
2019
- 2019-11-06 WO PCT/CN2019/116019 patent/WO2020094063A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430705A (zh) * | 2008-11-29 | 2009-05-13 | 中兴通讯股份有限公司 | 基于嵌入式数据库的存储方法和装置 |
CN105468544A (zh) * | 2014-09-11 | 2016-04-06 | 深圳市腾讯计算机***有限公司 | 实现防掉电文件***的方法、装置以及防掉电文件*** |
CN104765628A (zh) * | 2015-03-10 | 2015-07-08 | 惠州Tcl移动通信有限公司 | 一种移动终端更新触摸屏固件的方法及*** |
CN105759679A (zh) * | 2015-12-12 | 2016-07-13 | 重庆川仪自动化股份有限公司 | 掉电保护控制器及其掉电保护方法 |
CN106919474A (zh) * | 2015-12-28 | 2017-07-04 | 中移(苏州)软件技术有限公司 | 一种缓存数据保护方法和装置 |
CN106569748A (zh) * | 2016-10-27 | 2017-04-19 | 南方电网科学研究院有限责任公司 | Flash文件***的数据处理方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760587A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种处理数据的方法和装置 |
CN115794842A (zh) * | 2022-11-02 | 2023-03-14 | 北京明朝万达科技股份有限公司 | 数据处理方法、装置、电子设备及介质 |
CN115794842B (zh) * | 2022-11-02 | 2024-04-05 | 北京明朝万达科技股份有限公司 | 数据处理方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020094063A1 (zh) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110730104A (zh) | 一种mesh网络设备的多设备批量固件升级的方法 | |
CN107547245B (zh) | 一种版本升级方法和装置 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
US9883386B2 (en) | Method and a server for managing profiles | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN110569085A (zh) | 配置文件加载方法及*** | |
CN103685489A (zh) | 无线网络中文件传输方法 | |
CN111143899A (zh) | 存储数据的方法、装置、存储介质及电子装置 | |
WO2015176468A1 (zh) | 一种智能终端的***软件恢复的方法及装置 | |
US11281446B2 (en) | Updating method, terminal and electronic device | |
WO2024113534A1 (zh) | 存储节点中存储资源的控制方法和装置,以及存储节点 | |
CN113949658B (zh) | 表项处理方法、***、装置、电子设备及存储介质 | |
CN113992739B (zh) | 一种局域网ota固件升级装置、方法及*** | |
CN113535482B (zh) | 云备份链数据备份方法及装置、设备、可读介质 | |
CN115378815A (zh) | 数据恢复的方法、装置、网络设备及存储介质 | |
CN111274219B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN111182047B (zh) | 用于在跨网络的大数据平台之间转移文件的方法和*** | |
US11409700B2 (en) | Method, electronic device and computer program product for snapshot replication | |
CN113849135A (zh) | 日志的访问方法、装置及服务器 | |
CN115118773B (zh) | 数据文件推送方法、服务器和计算机可读存储介质 | |
CN110572442A (zh) | 配置文件路径的方法及*** | |
CN112769889B (zh) | 服务数据的推送方法、装置、存储介质以及电子装置 | |
CN113064869B (zh) | 日志处理方法、装置、发送端、接收端设备及存储介质 | |
CN111324488B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200512 |
|
WD01 | Invention patent application deemed withdrawn after publication |