CN109542665A - 掉电恢复方法、数据写入方法及装置 - Google Patents
掉电恢复方法、数据写入方法及装置 Download PDFInfo
- Publication number
- CN109542665A CN109542665A CN201710860671.9A CN201710860671A CN109542665A CN 109542665 A CN109542665 A CN 109542665A CN 201710860671 A CN201710860671 A CN 201710860671A CN 109542665 A CN109542665 A CN 109542665A
- Authority
- CN
- China
- Prior art keywords
- key
- value pair
- detected
- state
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种掉电恢复方法、数据写入方法及装置。其中,该方法包括:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。本发明解决了现有的掉电恢复方式难以有效恢复存储数据的技术问题。
Description
技术领域
本发明涉及掉电保护领域,具体而言,涉及一种掉电恢复方法、数据写入方法及装置。
背景技术
随着物联网在智能家居、物流管理和医疗电子等方面的不断深入发展,嵌入式系统作为物联网的重要技术组成部分,通过与应用传感单元的结合,可以实现扩展物联和感知的支持能力,发掘多种领域物联网的应用。
嵌入式系统有别于一般的计算机处理系统,不具备像硬盘一样大容量的存储介质,大多使用闪存(Flash Memory)作为存储介质,因此,一些小型物联网中的嵌入式设备会使用键值对存储(KV存储)的方式,例如,在闪存存储器上存储一些设备的配置信息等,但由于物联网嵌入式设备的使用场景比较复杂,异常掉电现象频发,在此情况下,会破坏KV存储的配置信息。
由于KV存储数据一般较小,目前现有技术中,基于KV存储掉电保护的实现方案主要通过主备区镜像备份的方式来进行,也即,先将键值对写入随机存取存储器(RAM)进行缓存,当触发同步时才将所有缓存键值对写入存储介质(Flash Memory),并通过主备区镜像备份的方式来进行掉电保护。
但是目前的掉电保护方案仍存在很大的缺陷,例如,若在缓存键值写入存储介质过程中突然掉电,许多有效数据仍会出现丢失;再例如,若主备区的镜像都在异常掉电过程中损坏,则存储的键值对数据将无法恢复。
针对上述现有的掉电恢复方式难以有效恢复存储数据的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种掉电恢复方法、数据写入方法及装置,以至少解决现有的掉电恢复方式难以有效恢复存储数据的技术问题。
根据本发明实施例的一个方面,提供了一种掉电恢复方法,包括:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
根据本发明实施例的另一方面,还提供了一种数据写入方法,包括:接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态;将添加标识字段的待写入键值对写入存储介质。
根据本发明实施例的另一方面,还提供了一种掉电恢复装置,包括:检测模块,用于在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行模块,用于执行与待检测键值对的状态对应的操作。
根据本发明实施例的另一方面,还提供了一种数据写入装置,包括:接收单元,用于接收数据写入请求,数据写入请求中包含待写入键值对;添加单元,用于对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态;写入单元,用于将添加标识字段的待写入键值对写入存储介质。
根据本发明实施例的另一方面,还提供了一种计算机终端,其特征在于,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的掉电恢复方法和数据写入方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的掉电恢复方法和数据写入方法。
根据本发明实施例的另一方面,还提供了一种掉电恢复方法,包括:在掉电恢复过程中,根据待检测对象的标识字段,检测上述待检测对象的状态;执行与上述待检测对象的状态对应的操作。
根据本发明实施例的另一方面,还提供了一种数据写入方法,包括:接收数据写入请求,上述数据写入请求中包含待写入数据;对上述待写入数据对添加标识字段,其中,上述标识字段用于指示上述待写入数据的状态;将添加上述标识字段的上述待写入数据写入存储介质。
在本发明实施例中,采用将数据添加标识字段后直接写入存储介质的方式,通过在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作,达到了在将键值对写入存储介质发生异常掉电时,根据键值对的状态恢复键值对数据的目的,从而实现了有效保护嵌入式设备的存储数据的技术效果,进而解决了现有的掉电恢复方式难以有效恢复存储数据的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例1的一种掉电恢复方法的步骤流程图;
图2是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图;
图3是根据本发明实施例1的一种键值对的状态转换示意图;
图4是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图;
图5是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图;
图6是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图;
图7是根据本发明实施例2的一种数据写入方法的步骤流程图;
图8是根据本发明实施例2的一种可选的数据写入方法的步骤流程图;
图9是根据本发明实施例2的一种可选的数据写入方法的步骤流程图;
图10是根据本发明实施例3的一种掉电恢复装置的结构示意图;
图11是根据本发明实施例4的一种数据写入装置的结构示意图;以及
图12是根据本发明实施例一种计算机终端的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
键值对(Key-Value Pairs):是指根据一个键值获取对应的一个值,其中,键值是指计算机和应用程序执行时使用的实际配置信息和数据。
键值对存储(KV存储):是指一种以键值对为存储单位,进行数据存储的方式。
非易失闪存存储器(Nor-Flash Memory):是指一种可以基于非易失闪存技术(Nor-Flash),对存储器单元块进行擦写和再编程的存储介质。
掉电保护(Power Fail Safeguard):是指一种在掉电时的保护数据的方式,也即在重构过程中(非重建)发生掉电时,将所有数据一直保存在磁盘上,直至重构完成后进行删除。
循环冗余校验算法(Cyclic Redundancy Check,CRC):是指数据通信领域中一种常用的查错校验算法,具有数据传输查错的功能,通过对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
实施例1
根据本发明实施例,还提供了一种掉电恢复方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,本实施例所提供的一种掉电恢复方法可用于嵌入式设备以键值对存储数据的过程中出现异常掉电,恢复键值对存储数据的过程中,以确保在异常掉电的情况下,保护和恢复有效数据。
在物联网数据领域,一些小型物联网中的嵌入式设备,通常以键值对存储的方式实现数据的存储,例如,在闪存存储器上存储一些设备的配置信息等,但由于物联网嵌入式设备的使用场景比较复杂,异常掉电现象频发,一旦系统异常掉电,极易对KV存储的配置信息产生破坏,嵌入式设备的掉电问题一直阻碍着嵌入式系统的发展和扩大,因此,对嵌入式设备中的存储模块的掉电保护十分必要。
由于键值对的存储数据较小,目前的掉电保护方式是先将键值对写入RAM进行缓存,在设备触发数据同步的情况下,再将RAM上缓存的所有键值对写入Flash介质,并通过主备区镜像备份的方式来进行掉电保护。
但是,上述的掉电保护方案仍不能避免有效数据丢失和无法恢复的问题,例如:若在将RAM上缓存的所有键值对写入Flash介质的过程中异常掉电,许多有效数据仍会出现丢失;再例如:若主备区的镜像都在异常掉电过程中被损坏,则存储的键值对数据将无法恢复。
具体的,为解决现有的上述掉电保护方案仍不能避免有效数据丢失和无法恢复的问题,本申请提供了如图1所示的掉电恢复方法。图1是根据本发明实施例1的一种掉电恢复方法的步骤流程图,如图1所示,该方法包括如下方法步骤:
步骤S102,在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态。
需要说明的是,上述掉电恢复过程是指嵌入式设备在存储键值对至存储介质时发生异常掉电,对异常掉电中丢失或者损坏的键值对的数据进行恢复的过程。
可选的,上述待检测键值对可以为存储介质中所有的键值对,上述标识字段可以为数据头,也可以设置在键值对的任意位置,均用于指示键值对的状态。
在一种可选的实施例中,在将键值对写入存储介质之前,先分别对每个键值对添加一个标识字段,再将带有标识字段的键值对顺序写入存储介质。
仍需说明的是,为了实现根据键值对的标识字段检测键值对的状态,对每个键值对添加的标识字段中,可以但不限于包括如下信息:键值对的状态信息,从而可以根据标识字段中的状态信息检测待检测键值对的状态。
此外,还需进一步说明的是,本申请实施例中的存储介质可以为非易失闪存技术的非易失闪存存储器,从而可以进一步的提高掉电保护的效率。
步骤S104,执行与待检测键值对的状态对应的操作。
具体的,上述待检测键值对的状态可以包括以下任意一种状态:正常状态,更新状态,无效状态。
在一种可选的实施方式中,上述步骤S104,也即执行与待检测键值对的状态对应的操作,可以通过如下方法步骤实现:
步骤S1041,在待检测键值对的状态为正常状态的情况下,检测存储介质中是否存储有与待检测键值对对应的原始键值对;
步骤S1043,若存储介质中存储有原始键值对,将原始键值对的状态标记为无效状态。
具体的,上述原始键值对为与待检测键值对的对应的原始键值对。
在上述步骤S1041至步骤S1043中,如果检测到待检测键值对的状态为正常状态,则检测存储上述键值对的存储介质中,是否存储有与待检测键值对所对应的原始键值对。
在一种可选的实施方式中,若检测到存储介质中存储有原始键值对,则将上述原始键值对的状态进行标记,具体的,为了对该原始键值对进行更新和恢复,可以将该原始键值对的状态标记为无效状态。
在另一种可选的实施方式中,上述步骤S104,也即执行与待检测键值对的状态对应的操作,可以通过如下方法步骤实现:
步骤S1045,在待检测键值对的状态为更新状态的情况下,记录待检测键值对的位置信息。
为实现对待检测键值对数据的更新和恢复,作为一种可选的实施例,在检测到上述键值对的状态为更新状态的情况下,可以记录上述键值对的位置信息。
需要说明的是,在记录上述待检测键值对的位置信息之后,继续对存储介质中的其他待检测键值对进行遍历,检测其他待检测键值对的状态,并执行与该状态对应的操作。
此外,本申请还提供了另一种可选的实施方式,具体的,上述步骤S104,也即执行与待检测键值对的状态对应的操作,还可以通过如下方法步骤实现:
步骤S1047,在待检测键值对的状态为非正常状态且非更新状态且非无效状态的情况下,将待检测键值对的状态标记为无效状态。
具体的,在上述步骤S1047,如果检测到待检测键值对的状态为非正常状态且非更新状态且非无效状态,则表明该待检测键值对的状态处于不明确的情况,可能在嵌入式设备异常掉电的过程中,出现了键值对数据的丢失和损坏的问题。
在出现上述情况时,可以将该待检测键值对的状态进行标记,具体的,为了对该待检测键值对数据进行更新和恢复,可以将该待检测键值对的状态标记为无效状态。
基于上述步骤S102至步骤S104所限定的方案可以获知,在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
容易注意到的是,由于本申请上述实施例在掉电恢复过程中,根据预先对每个键值对添加的标识字段中携带的状态信息,确定每个待检测键值对的状态,并执行与上述待检测键值对的状态对应的操作,从而可以实现根据待检测键值对的状态,确定需要恢复的键值对的数据,提高了异常掉电时,数据恢复的效率。
通过本申请上述实施例所提供的方案,达到了在将键值对写入存储介质发生异常掉电时,恢复和保护键值对数据的目的,从而实现了有效保护嵌入式设备的存储数据的技术效果,进而解决了现有的掉电恢复方式难以有效恢复存储数据的技术问题。
为了实现在掉电恢复过程中,根据检测键值对的状态信息进行掉电保护,恢复有效的键值对数据,在一种可选的实施方式中,上述标识字段包括状态信息;其中,图2是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图,如图2所示,上述步骤S102中:根据待检测键值对的标识字段,检测待检测键值对的状态,可以通过如下方法步骤实现:
步骤S1021,读取标识字段中的状态信息;
步骤S1023,根据状态信息,确定待检测键值对的状态。
具体的,上述状态信息为预先写入标识字段中的键值对的状态信息,例如,正常状态,更新状态,无效状态,非正常状态,非更新状态,或非无效状态等状态信息。
在一种可选的实施例中,在将键值对写入存储介质之前,先分别对每个键值对添加一个标识字段,每个键值对所添加的标识字段中,可以但不限于包括如下信息:该标识字段对应键值对的状态信息。
因而,基于上述步骤S1021至步骤S1023所提供的可选实施例,在根据键值对的标识字段来检测键值对的状态时,可以通过读取键值对的标识字段中的状态信息,来确定键值对的状态。
此外,为方便理解本申请实施例中待检测键值对的不同状态,仍以待检测键值对为键值对为例,本申请提供了一种键值对的状态转换实施例,图3是根据本发明实施例1的一种键值对的状态转换示意图,如图3所示,在将键值对写入存储介质时,默认键值对的状态为正常(Normal)状态。
在一种可选的实施例中,如果该键值对的数据被删除,或者在异常掉电的情况下,丢失或者损坏了该键值对的数据,则确定该键值对的数据不完整,并将该键值对的状态标记为无效(Invalid)状态。
在另一种可选的实施例中,如果检测到需要更新该键值对,将该键值对的状态标记为更新(Updating)状态,以便于对该键值对的数据进行更新和恢复,并在键值对更新完成之后,删除该键值对的原始键值对,并将该键值对的状态标记为无效状态。
作为一种可选的实施方式,图4是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图,如图4所示,在待检测键值对的状态为非无效状态的情况下,方法还包括如下方法步骤:
步骤S106,根据标识字段,判断待检测键值对的数据是否完整。
为了实现根据键值对的标识字段,检测待检测键值对的数据是否完整,对每个键值对所添加的标识字段中,可以但不限于包括如下信息:键值对的完整性校验值,从而可以根据标识字段中的完整性校验值检测待检测键值对的数据是否完整。
仍需要说明的是,判断待检测键值对的数据是否完整,也即,判断在嵌入式设备异常掉电的过程中,上述待检测键值对的数据是否丢失和损坏。
步骤S108,若待检测键值对的数据完整,触发执行与待检测键值对的状态对应的操作;
步骤S110,若待检测键值对的数据不完整,将待检测键值对的状态标记为无效状态。
作为一种可选的实施例,如果检测出键值对的数据不完整,则可以确定该键值对在嵌入式设备异常掉电的过程中,该键值对的数据发生了丢失和损坏。
为了提高恢复键值对数据的效率,在上述步骤S108至步骤S110中,可以在判断出该键值对的数据完整的情况下,触发根据键值对的状态对键值对的数据进行恢复和更新的操作;并在在判断出该键值对的数据不完整的情况下,将该键值对的状态标记为无效状态。
为了实现在掉电恢复过程中,根据键值对的数据的完整性来判断恢复键值对的有效数据,在一种可选的实施方式中,图5是根据本发明实施例1的一种可选的掉电恢复方法的步骤流程图,如图5所示,上述步骤S106中:根据待检测键值对的标识字段,判断待检测键值对的数据是否完整,可以通过如下方法步骤实现:
步骤S1061,采用预设算法,将待检测键值对的数据转化为预定长度的编码;
具体的,上述预设算法可以为循环冗余校验算法(CRC校验算法),可以通过对检测对象的数据进行多项式计算,并将得到的计算结果转换为预定长度的编码,可选的,该预设长度的编码格式可以为但不限于:二进制编码和十进制编码,例如,可以为4比特的字符串。
步骤S1063,将预定长度的编码与标识字段中的完整性校验值进行匹配;
具体的,为确保匹配验证的准确性,上述完整性校验值可以为在为键值对添加标识字段时,执行CRC校验算法,转化该键值对数据得到的一个校验值。
作为一种可选的实施例,在根据待检测键值对的标识字段,判断待检测键值对的数据是否完整时,可以根据CRC校验算法,先将键值对的数据转化为与标识字段中的完整性校验值类型和长度一致的编码,进而将上述编码与完整性校验值进行匹配验证,以保证键值对数据传输的准确性和完整性。
步骤S1065,若预定长度的编码与完整性校验值相同,则确定待检测键值对的数据完整;
步骤S1067,若预定长度的编码与完整性校验值不相同,则确定待检测键值对的数据不完整。
在上述步骤S1061至步骤S1067中,由于上述预定长度的编码与完整性校验值,是由不同阶段的待检测键值对的数据,根据CRC校验算法转换得到的校验数据,因此,可以通过判断上述预定长度的编码与完整性校验值是否相同,来判断待检测键值对的数据是否完整。
具体的,如果上述预设长度的编码与待检测键值对中的完整性校验值不相同,则确定待检测键值对的数据不完整。
在一种可选的实施方式中,检测待检测键值对的状态之前,上述方法还包括如下方法步骤:
判断标识字段的格式是否正确;
在标识字段的格式正确的情况下,触发检测待检测键值对的状态。
需要说明的是,在上述可选的实施方式中,可以通过魔数(Magic Number)校验法检测标识字段的格式是否正确,或者采用头部校验和(Head checksum)字段计算标识字段的校验和,进而检测标识字段的格式是否正确和完整,均应在本实施例的保护范围之内。
可选的,判断标识字段的格式是否正确,也即,判断键值对的标识字段中的状态信息和完整性校验值是否正确。
作为一种可选的实施方式,为了提高恢复键值对数据的效率,在标识字段的格式正确的情况下,根据键值对的标识字段中的状态信息检测键值对的状态。
为便于理解本申请,根据本发明实施例,本申请还提供了一种可选的实施方式对本申请进行说明,图6是根据本申请实施例1的一种可选的掉电恢复方法的步骤流程图,如图6所示,本申请提供的掉电恢复方法可以通过如下步骤实现:
步骤S1:遍历存储介质中的键值对。
可选的,上述存储介质可以为但不限于Nor-Flash存储介质,上述键值对可以为Nor-Flash存储介质中的每个键值对。
在上述步骤S1中,可以是在掉电恢复过程中,遍历存储在Nor-Flash存储介质中的键值对。
步骤S2:判断数据头的格式是否正确;
具体的,在判断出数据头的格式正确的情况下,触发检测待检测键值对的状态的步骤S3;在判断出数据头的格式不正确的情况下,执行步骤S4,继续遍历存储介质中的键值对。
步骤S3:检测存储介质中的键值对的状态是否为无效状态。
可选的,在上述步骤S3中,可以通过读取待检测键值对的数据头中的状态信息,确定对键值对的状态。
具体的,若上述键值对的状态为无效状态,执行步骤S4;若上述键值对的状态不是无效状态(即非无效状态),执行步骤S5。
步骤S4:继续遍历存储介质中的键值对。
步骤S5:判断待检测键值对的数据是否完整。
具体的,若判断出上述待检测键值对的数据完整,则执行步骤S6;若判断出上述待检测键值对的数据不完整,则执行步骤S7。
步骤S6:在判断出待检测键值对的数据完整的情况下,判断待检测键值对的状态是否为更新状态。
具体的,若判断出待检测键值对的状态为更新状态,为实现对待检测键值对的数据更新和恢复,执行步骤S8;若判断出待检测键值对的状态不为更新状态,执行步骤S9。
步骤S7:在判断出待检测键值对的数据不完整的情况下,将待检测键值对的状态标记为无效状态,并在键值对的状态为无效状态时,返回执行步骤S4。
步骤S8:记录当前键值对的位置信息。
具体的,在记录上述键值对的位置信息之后,执行步骤S10。
步骤S9:判断上述键值对的状态是否为正常状态。
具体的,在上述步骤S9中,如果判断上述键值对的状态为正常状态,则执行步骤S11;
步骤S10:继续对存储介质中的其他待检测对象进行遍历。
可选的,上述步骤S10中,通过继续对存储介质中的其他待检测对象进行遍历,检测其他待检测对象的状态,并执行与该状态对应的操作。
步骤S11:检测存储介质中是否存储有与待检测键值对所对应的原始对象。
具体的,在上述步骤S11中,若检测出存储介质中存储有原始对象,则执行步骤S12;若检测出存储介质中并未存储有原始对象,则执行步骤S10。
步骤S12:将上述原始对象的状态标记为无效状态。
具体的,在上述步骤S12中,将原始对象的状态标记为无效状态之后,返回执行步骤S10,继续对存储介质中的其他待检测对象进行遍历。
基于此,本实施例的掉电恢复方法,在发生掉电后,遍历存储介质中的所有键值对,依据键值对的数据头,检测键值对的状态及完整性,及时检测出无效的键值对,一方面保证了存储介质中有效键值对的准确性,另一方面对于掉电损坏的键值对可以重新写入及时恢复。
根据本发明实施例还提供了一种掉电恢复方法,包括:在掉电恢复过程中,根据待检测对象的标识字段,检测上述待检测对象的状态;执行与上述待检测对象的状态对应的操作。
可选的,上述待检测对象可以为但是并不限于:待检测的键值对。
需要说明的是,本实施例的优选实施方式,可以参见实施例1中的上述相关描述,此处不再赘述。
此外,仍需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种数据写入方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,本实施例所提供的一种数据写入方法可用于将键值对写入存储介质的过程中,无需通过缓存介质进行缓存,直接将键值对的数据写入Nor-Flash存储介质,如果在写入的过程中出现异常掉电,只会对正在写入的键值对产生影响,其他的键值对并不会收到影响,因而,可以实现最大程度上保护数据的完整性和正确性。
图7是根据本发明实施例2的一种数据写入方法的步骤流程图,如图7所示,该方法包括如下方法步骤:
步骤S701,接收数据写入请求,数据写入请求中包含待写入键值对。
可选的,在步骤S701中,上述数据可以为但不限于:键值对数据,上述写入请求可以为将键值对数据写入Nor-Flash存储介质的请求,其中,该写入请求中包括但不限于:待写入存储介质的键值对数据。
需要说明的是,上述写入请求的类型包括但不限于:新写入请求、数据更新请求。
步骤S703,对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;
可选的,在上述步骤S703中,上述标识字段中,可以但不限于包括以下信息:键值对的状态、键值对的完整性校验值。
在一种可选的实施例中,可以是在接收到键值对请求写入时,预先对键值对添加额外的标识字段。
步骤S705,将添加标识字段的待写入键值对写入存储介质。
可选的,在上述步骤S705中,可以直接将上述待写入键值对顺序写入Nor-Flash存储介质。
作为一种可选的实施方式,本申请无需通过先通过RAM缓存键值对数据,而后再一次性将缓存写入flash存储介质,而是直接将带标识字段的键值对顺序写入Nor-Flash存储介质,如果在写入键值对数据的过程中,发生意外掉电或者异常掉电,也只会对正在写入存储介质的键值对产生影响,并不会影响到其他的键值对(例如,已经存储在Nor-Flash存储介质上的键值对),因此,通过本申请上述步骤S701至步骤S705所提供的具体实施方案,可以实现在发生意外掉电或者异常掉电,最大程度上保护写入的键值对数据完整和正确。
需要说明的是,若该写入请求为数据更新请求,则采用异地更新的方式,将待写入键值对写入存储介质。
基于上述步骤S701至步骤S705所限定的方案可以获知,接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态;将添加标识字段的待写入键值对写入存储介质。
容易注意到的是,由于本申请上述实施例在数据写入过程中,由于给每个键值对都添加了一个额外的标识字段,进而可以在掉电恢复过程中,通过依次检测键值对的状态和完整性,进而保护恢复有效数据。并且,本申请上述实施方式,可以涵盖在将键值对数据写入Nor-Flash存储介质时发生异常掉电的所有场景,进而可以达到保护有效的键值对数据的目的。
通过本申请上述实施例所提供的方案,达到了无需通过缓存介质RAM进行缓存,直接将键值对数据写入Nor-Flash存储介质的目的,从而实现了在系统异常掉电时,最大程度上保证存储数据完整正确的技术效果,进而解决了现有的键值对数据写入存储介质时发生异常掉电,难以恢复键值对数据技术问题。
在一种可选的实施方式,图8是根据本发明实施例2的一种可选的数据写入方法的步骤流程图,如图8所示,对待写入键值对添加标识字段之前,方法还包括如下方法步骤:
步骤S801,查找存储介质中是否存储有与待写入键值对对应的原始键值对;
在上述步骤S801中,在对待写入键值对添加标识字段之前,可以通过遍历存储介质中的键值对的方式,查找Nor-Flash存储介质中是否存储有与待写入的键值对数据对应的原始键值对,进而可以判断上述写入请求是新写入请求,或者是数据更新请求。
步骤S803,若存储介质中未存储原始键值对,触发对待写入键值对添加标识字段。
作为一种可选的实施方式,在上述步骤S803中,如果Nor-Flash存储介质中未存储有上述原始键值对,则表明当前的数据写入请求为新写入请求,则需要对待写入的键值对添加一个额外的标识字段,其中,该标识字段用于指示待写入键值对的状态以及键值对数据的完整性。
在一种可选的实施方式,图9是根据本发明实施例2的一种可选的数据写入方法的步骤流程图,如图9所示,上述方法还包括如下方法步骤:
步骤S901,若存储介质中已存储原始键值对,将原始键值对的状态标记为更新状态,触发对待写入键值对添加标识字段;以及
可选的,在上述步骤S901中,如果Nor-Flash存储介质中已存储有上述原始键值对,则表明当前的数据写入请求为数据更新请求。
作为一种可选的实施方式,可以在将原始键值对的状态标记为更新状态,并对待写入的键值对添加一个额外的标识字段,其中,该标识字段用于指示待写入键值对的状态以及键值对数据的完整性。
将添加标识字段的待写入键值对写入存储介质之后,方法还包括:步骤S903,将原始键值对的标记为改为无效状态。
需要说明的是,由于上述写入请求是更新数据请求,因此需将原始键对的标识字段标记为更新状态,并将更新的键值对数据写入一个预设位置之后,再将原始键对的标识字段改为无效状态。
此外,还需要说明的是,如果上述写入请求是新写入请求,则在对待写入的键值对添加标识字段之后,直接将该键值对数据写入Nor-Flash存储介质。
基于上述步骤S901至步骤S903所提供的方案,可以通过对存储介质进行遍历,并根据遍历结果中的键值对的状态,执行与该键值对的状态相对应的操作,进而可以实现无需通过缓存介质RAM进行缓存,直接将键值对数据写入Nor-Flash存储介质的技术效果。
根据本发明实施例还提供了一种数据写入方法,包括:接收数据写入请求,上述数据写入请求中包含待写入数据;对上述待写入数据对添加标识字段,其中,上述标识字段用于指示上述待写入数据的状态;将添加上述标识字段的上述待写入数据写入存储介质。
可选的,上述待写入数据可以为但是并不限于:待写入的键值对。
需要说明的是,本实施例的优选实施方式,可以参见实施例2中的上述相关描述,此处不再赘述。
此外,仍需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述掉电恢复方法的掉电恢复装置,图10是根据本发明实施例3的一种掉电恢复装置的结构示意图,如图10所示,该装置包括:检测模块100和执行模块102,其中,
检测模块100,用于在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行模块102,用于执行与待检测键值对的状态对应的操作。
需要说明的是,本实施例所提供的一种掉电恢复方法可用于嵌入式设备以键值对存储数据的过程中出现异常掉电,恢复键值对存储数据的过程中,以确保在异常掉电的情况下,保护和恢复有效数据。
基于上述实施例所限定的方案可以获知,检测模块100,用于在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行模块102,用于执行与待检测键值对的状态对应的操作。
容易注意到的是,由于本申请上述实施例在掉电恢复过程中,根据预先对每个键值对添加的标识字段中携带的状态信息,确定每个待检测键值对的状态,并执行与上述待检测键值对的状态对应的操作,从而可以实现根据待检测键值对的状态,确定需要恢复的键值对的数据,提高了异常掉电时,数据恢复的效率。
通过本申请上述实施例所提供的方案,达到了在将键值对写入存储介质发生异常掉电时,恢复和保护键值对数据的目的,从而实现了有效保护嵌入式设备的存储数据的技术效果,进而解决了现有的掉电恢复方式难以有效恢复存储数据的技术问题。
此处需要说明的是,上述检测模块100和执行模块102对应于实施例1中的步骤S102至步骤S104,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例5提供的计算机终端中。
在一种可选的实施方式中,标识字段包括状态信息;其中,上述检测模块包括:读取子模块和第一确定子模块,其中,读取子模块,用于读取标识字段中的状态信息;第一确定子模块,用于根据状态信息,确定待检测键值对的状态。
在一种可选的实施方式中,上述执行模块包括:检测子模块和第一标记模块,其中,检测子模块,用于在待检测键值对的状态为正常状态的情况下,检测存储介质中是否存储有与待检测键值对对应的原始键值对;第一标记子模块,用于若存储介质中存储有原始键值对,将原始键值对的状态标记为无效状态。
在一种可选的实施方式中,上述执行模块还包括:记录子模块,用于在待检测键值对的状态为更新状态的情况下,记录待检测键值对的位置信息。
在一种可选的实施方式中,上述执行模块还包括:第二标记子模块,用于在待检测键值对的状态为非正常状态且非更新状态且非无效状态的情况下,将待检测键值对的状态标记为无效状态。
在一种可选的实施方式中,在待检测键值对的状态为非无效状态的情况下,上述装置还包括如下模块:判断模块,用于根据标识字段,判断待检测键值对的数据是否完整;第一触发模块,用于若待检测键值对的数据完整,触发执行与待检测键值对的状态对应的操作;标记模块,用于若待检测键值对的数据不完整,将待检测键值对的状态标记为无效状态。
在一种可选的实施方式中,上述检测模块还包括:转化子模块、匹配子模块、第二确定子模块和第三确定子模块,其中,转化子模块,用于采用预设算法,将待检测键值对的数据转化为预定长度的编码;匹配子模块,用于将预定长度的编码与完整性校验值进行匹配;第二确定子模块,用于若预定长度的编码与完整性校验值相同,则确定待检测键值对的数据完整;第三确定子模块,用于若预定长度的编码与完整性校验值不相同,则确定待检测键值对的数据不完整。
在一种可选的实施方式中,上述装置还包括:判断模块,用于判断标识字段的格式是否正确;第二触发模块,用于在标识字段的格式正确的情况下,触发检测待检测键值对的状态。
此处需要说明的是,本申请实施例3中的上述各个模块和各个子模块对应于实施例1中的方法步骤,各个模块和各个子模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例5提供的计算机终端中。
实施例4
根据本发明实施例,还提供了一种用于实施上述数据写入方法的数据写入装置,图11是根据本发明实施例4的一种数据写入装置的结构示意图,如图11所示,该装置包括:接收单元110、添加单元112和写入单元114,其中,
接收单元110,用于接收数据写入请求,数据写入请求中包含待写入键值对;添加单元112,用于对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;写入单元114,用于将添加标识字段的待写入键值对写入存储介质。
需要说明的是,本实施例所提供的一种数据写入方法可用于将键值对写入存储介质的过程中,无需通过缓存介质进行缓存,直接将键值对的数据写入Nor-Flash存储介质,如果在写入的过程中出现异常掉电,只会对正在写入的键值对产生影响,其他的键值对并不会收到影响,因而,可以实现最大程度上保护数据的完整性和正确性。
此处需要说明的是,上述接收单元110、添加单元112和写入单元114对应于实施例2中的步骤S701至步骤S705,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例5提供的计算机终端中。
基于上述实施例所限定的方案可以获知,接收单元110,用于接收数据写入请求,数据写入请求中包含待写入键值对;添加单元112,用于对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;写入单元114,用于将添加标识字段的待写入键值对写入存储介质。
容易注意到的是,由于本申请上述实施例在数据写入过程中,由于给每个键值对都添加了一个额外的标识字段,进而可以在掉电恢复过程中,通过依次检测键值对的状态和完整性,进而保护恢复有效数据。并且,本申请上述实施方式,可以涵盖在将键值对数据写入Nor-Flash存储介质时发生异常掉电的所有场景,可以达到保护有效的键值对数据的目的。
通过本申请上述实施例所提供的方案,达到了无需通过缓存介质RAM进行缓存,直接将键值对数据写入Nor-Flash存储介质的目的,从而实现了在系统异常掉电时,最大程度上保证存储数据完整正确的技术效果,进而解决了现有的键值对数据写入存储介质时发生异常掉电,难以恢复键值对数据技术问题。
在一种可选的实施例中,上述装置还包括:查找单元和第一触发单元,其中,查找单元,用于查找存储介质中是否存储有与待写入键值对对应的原始键值对;第一触发单元,用于若存储介质中未存储原始键值对,触发对待写入键值对添加标识字段。
在一种可选的实施例中,上述装置还包括:第二触发单元,用于若存储介质中已存储原始键值对,将原始键值对的状态标记为更新状态,触发对待写入键值对添加标识字段;以及在上述写入单元之后,上述装置还包括:第一标记单元,用于将原始键值对的标记为改为无效状态。
此处需要说明的是,本申请实施例4中的上述各个单元模块对应于实施例2中的方法步骤,各个单元模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述单元模块作为装置的一部分可以运行在实施例5提供的计算机终端中。
实施例5
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
图12示出了一种计算机终端的硬件结构框图。如图12所示,计算机终端12可以包括一个或多个(图中采用122a、122b,……,122n来示出)处理器122(处理器122可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器124、以及用于通信功能的传输装置126。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端12还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
应当注意到的是上述一个或多个处理器122和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端12中的其他元件中的任意一个。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
处理器122可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
存储器124可用于存储应用软件的软件程序以及模块,如本申请实施例中的掉电保护方法对应的程序指令/数据存储装置,处理器122通过运行存储在存储器124内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的掉电保护方法。存储器124可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器124可进一步包括相对于处理器122远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端12。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置126用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端12的通信供应商提供的无线网络。在一个实例中,传输装置126包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置126可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端12的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图12所示的计算机终端12可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图12仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端12中的部件的类型。
在本实施例中,上述计算机终端可以执行掉电恢复方法中以下步骤的程序代码:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
可选的,上述处理器还可以执行如下步骤的程序代码:读取标识字段中的状态信息;根据状态信息,确定待检测键值对的状态。
可选的,上述处理器还可以执行如下步骤的程序代码:在待检测键值对的状态为正常状态的情况下,检测存储介质中是否存储有与待检测键值对对应的原始键值对;若存储介质中存储有原始键值对,将原始键值对的状态标记为无效状态。
可选的,上述处理器还可以执行如下步骤的程序代码:在待检测键值对的状态为更新状态的情况下,记录待检测键值对的位置信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在待检测键值对的状态为非正常状态且非更新状态且非无效状态的情况下,将待检测键值对的状态标记为无效状态。
可选的,上述处理器还可以执行如下步骤的程序代码:根据标识字段,判断待检测键值对的数据是否完整;若待检测键值对的数据完整,触发执行与待检测键值对的状态对应的操作;若待检测键值对的数据不完整,将待检测键值对的状态标记为无效状态。
可选的,上述处理器还可以执行如下步骤的程序代码:采用预设算法,将待检测键值对的数据转化为预定长度的编码;将预定长度的编码与标识字段中的完整性校验值进行匹配;若预定长度的编码与完整性校验值相同,则确定待检测键值对的数据完整;若预定长度的编码与完整性校验值不相同,则确定待检测键值对的数据不完整。
可选的,上述处理器还可以执行如下步骤的程序代码:判断标识字段的格式是否正确;在标识字段的格式正确的情况下,触发检测待检测键值对的状态。
采用本发明实施例,提供了一种掉电恢复的方案。通过在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作,达到了在将键值对写入存储介质发生异常掉电时,根据键值对的状态恢复键值对数据的目的,进而解决了现有的掉电恢复方式难以有效恢复存储数据的技术问题。
在本实施例中,上述计算机终端还可以执行数据写入方法中以下步骤的程序代码:接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;将添加标识字段的待写入键值对写入存储介质。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;将添加标识字段的待写入键值对写入存储介质。
可选的,上述处理器还可以执行如下步骤的程序代码:查找存储介质中是否存储有与待写入键值对对应的原始键值对;若存储介质中未存储原始键值对,触发对待写入键值对添加标识字段。
可选的,上述处理器还可以执行如下步骤的程序代码:若存储介质中已存储原始键值对,将原始键值对的状态标记为更新状态,触发对待写入键值对添加标识字段;以及将添加标识字段的待写入键值对写入存储介质之后,方法还包括:将原始键值对的标记为改为无效状态。
采用本发明实施例,提供了一种数据写入的方案。通过接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;将添加标识字段的待写入键值对写入存储介质,从而达到了无需通过随机存取进行缓存,直接将键值对数据写入存储介质的目的,进而解决了现有的键值对数据写入存储介质时发生异常掉电,难以恢复键值对数据技术问题。
本领域普通技术人员可以理解,图12所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图12其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的掉电恢复方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在掉电恢复过程中,根据待检测键值对的标识字段,检测待检测键值对的状态;执行与待检测键值对的状态对应的操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:读取标识字段中的状态信息;根据状态信息,确定待检测键值对的状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在待检测键值对的状态为正常状态的情况下,检测存储介质中是否存储有与待检测键值对对应的原始键值对;若存储介质中存储有原始键值对,将原始键值对的状态标记为无效状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在待检测键值对的状态为更新状态的情况下,记录待检测键值对的位置信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在待检测键值对的状态为非正常状态且非更新状态且非无效状态的情况下,将待检测键值对的状态标记为无效状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据标识字段,判断待检测键值对的数据是否完整;若待检测键值对的数据完整,触发执行与待检测键值对的状态对应的操作;若待检测键值对的数据不完整,将待检测键值对的状态标记为无效状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用预设算法,将待检测键值对的数据转化为预定长度的编码;将预定长度的编码与标识字段中的完整性校验值进行匹配;若预定长度的编码与完整性校验值相同,则确定待检测键值对的数据完整;若预定长度的编码与完整性校验值不相同,则确定待检测键值对的数据不完整。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断标识字段的格式是否正确;在标识字段的格式正确的情况下,触发检测待检测键值对的状态。
可选地,在本实施例中,上述存储介质还可以用于保存上述实施例2所提供的数据写入方法所执行的程序代码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收数据写入请求,数据写入请求中包含待写入键值对;对待写入键值对添加标识字段,其中,标识字段用于指示待写入键值对的状态以及完整性;将添加标识字段的待写入键值对写入存储介质。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:查找存储介质中是否存储有与待写入键值对对应的原始键值对;若存储介质中未存储原始键值对,触发对待写入键值对添加标识字段。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:若存储介质中已存储原始键值对,将原始键值对的状态标记为更新状态,触发对待写入键值对添加标识字段;以及将添加标识字段的待写入键值对写入存储介质之后,方法还包括:将原始键值对的标记为改为无效状态。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (19)
1.一种掉电恢复方法,其特征在于,包括:
在掉电恢复过程中,根据待检测键值对的标识字段,检测所述待检测键值对的状态;
执行与所述待检测键值对的状态对应的操作。
2.根据权利要求1所述的方法,其特征在于,所述标识字段包括状态信息;其中,所述根据待检测键值对的标识字段,检测所述待检测键值对的状态包括:
读取所述标识字段中的所述状态信息;
根据所述状态信息,确定所述待检测键值对的状态。
3.根据权利要求1所述的方法,其特征在于,所述执行与所述待检测键值对的状态对应的操作包括:
在所述待检测键值对的状态为正常状态的情况下,检测存储介质中是否存储有与所述待检测键值对对应的原始键值对;
若所述存储介质中存储有所述原始键值对,将所述原始键值对的状态标记为无效状态。
4.根据权利要求1所述的方法,其特征在于,所述执行与所述待检测键值对的状态对应的操作包括:
在所述待检测键值对的状态为更新状态的情况下,记录所述待检测键值对的位置信息。
5.根据权利要求1所述的方法,其特征在于,所述执行与所述待检测键值对的状态对应的操作包括:
在所述待检测键值对的状态为非正常状态且非更新状态且非无效状态的情况下,将所述待检测键值对的状态标记为无效状态。
6.根据权利要求1所述的方法,其特征在于,在所述待检测键值对的状态为非无效状态的情况下,所述方法还包括:
根据所述标识字段,判断所述待检测键值对的数据是否完整;
若所述待检测键值对的数据完整,触发执行与所述待检测键值对的状态对应的操作;
若所述待检测键值对的数据不完整,将所述待检测键值对的状态标记为无效状态。
7.根据权利要求6所述的方法,其特征在于,所述根据所述标识字段,判断所述待检测键值对的数据是否完整包括:
采用预设算法,将所述待检测键值对的数据转化为预定长度的编码;
将所述预定长度的编码与所述标识字段中的完整性校验值进行匹配;
若所述预定长度的编码与所述完整性校验值相同,则确定所述待检测键值对的数据完整;
若所述预定长度的编码与所述完整性校验值不相同,则确定所述待检测键值对的数据不完整。
8.根据权利要求1至7中任一项所述的方法,其特征在于,检测所述待检测键值对的状态之前,所述方法还包括:
判断所述标识字段的格式是否正确;
在所述标识字段的格式正确的情况下,触发检测所述待检测键值对的状态。
9.一种数据写入方法,其特征在于,包括:
接收数据写入请求,所述数据写入请求中包含待写入键值对;
对所述待写入键值对添加标识字段,其中,所述标识字段用于指示所述待写入键值对的状态;
将添加所述标识字段的所述待写入键值对写入存储介质。
10.根据权利要求9所述的方法,其特征在于,对所述待写入键值对添加标识字段之前,所述方法还包括:
查找所述存储介质中是否存储有与所述待写入键值对对应的原始键值对;
若所述存储介质中未存储所述原始键值对,触发对所述待写入键值对添加标识字段。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述存储介质中已存储所述原始键值对,将所述原始键值对的状态标记为更新状态,触发对所述待写入键值对添加标识字段;以及
将添加所述标识字段的所述待写入键值对写入存储介质之后,所述方法还包括:
将所述原始键值对的标记为改为无效状态。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述标识字段包含状态信息和完整性校验值,其中,所述状态信息用于指示所述待写入键值对的状态,所述完整性校验值用于指示所述待写入键值对是否完整。
13.一种掉电恢复装置,其特征在于,包括:
检测模块,用于在掉电恢复过程中,根据待检测键值对的标识字段,检测所述待检测键值对的状态;
执行模块,用于执行与所述待检测键值对的状态对应的操作。
14.一种数据写入装置,其特征在于,包括:
接收单元,用于接收数据写入请求,所述数据写入请求中包含待写入键值对;
添加单元,用于对所述待写入键值对添加标识字段,其中,所述标识字段用于指示所述待写入键值对的状态;
写入单元,用于将添加所述标识字段的所述待写入键值对写入存储介质。
15.一种计算机终端,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:在掉电恢复过程中,根据待检测键值对的标识字段,检测所述待检测键值对的状态;执行与所述待检测键值对的状态对应的操作。
16.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的掉电恢复方法,或权利要求9至12中任意一项所述的数据写入方法。
17.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的掉电恢复方法,或权利要求9至12中任意一项所述的数据写入方法。
18.一种掉电恢复方法,其特征在于,包括:
在掉电恢复过程中,根据待检测对象的标识字段,检测所述待检测对象的状态;
执行与所述待检测对象的状态对应的操作。
19.一种数据写入方法,其特征在于,包括:
接收数据写入请求,所述数据写入请求中包含待写入数据;
对所述待写入数据对添加标识字段,其中,所述标识字段用于指示所述待写入数据的状态;
将添加所述标识字段的所述待写入数据写入存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860671.9A CN109542665A (zh) | 2017-09-21 | 2017-09-21 | 掉电恢复方法、数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710860671.9A CN109542665A (zh) | 2017-09-21 | 2017-09-21 | 掉电恢复方法、数据写入方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542665A true CN109542665A (zh) | 2019-03-29 |
Family
ID=65828287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710860671.9A Pending CN109542665A (zh) | 2017-09-21 | 2017-09-21 | 掉电恢复方法、数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542665A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090542A (zh) * | 2019-12-17 | 2020-05-01 | 深圳忆联信息系统有限公司 | 基于异常掉电的异常块识别方法、装置及计算机设备 |
CN113110880A (zh) * | 2020-01-10 | 2021-07-13 | 中移物联网有限公司 | 一种系统启动方法及电子设备 |
CN114490177A (zh) * | 2021-12-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 数据存储方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025715A (zh) * | 2007-03-07 | 2007-08-29 | 北京飞天诚信科技有限公司 | 基于非易失性存储器中两个连续逻辑块的掉电保护方法 |
CN103502970A (zh) * | 2011-12-21 | 2014-01-08 | 华为技术有限公司 | 一种键值对的操作方法及装置 |
US20140149355A1 (en) * | 2012-11-26 | 2014-05-29 | Amazon Technologies, Inc. | Streaming restore of a database from a backup system |
CN104778097A (zh) * | 2015-03-27 | 2015-07-15 | 新浪网技术(中国)有限公司 | 一种数据恢复方法及装置 |
CN106155596A (zh) * | 2016-08-03 | 2016-11-23 | 深圳市文鼎创数据科技有限公司 | 数据写入方法及装置 |
-
2017
- 2017-09-21 CN CN201710860671.9A patent/CN109542665A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025715A (zh) * | 2007-03-07 | 2007-08-29 | 北京飞天诚信科技有限公司 | 基于非易失性存储器中两个连续逻辑块的掉电保护方法 |
CN103502970A (zh) * | 2011-12-21 | 2014-01-08 | 华为技术有限公司 | 一种键值对的操作方法及装置 |
US20140149355A1 (en) * | 2012-11-26 | 2014-05-29 | Amazon Technologies, Inc. | Streaming restore of a database from a backup system |
CN104778097A (zh) * | 2015-03-27 | 2015-07-15 | 新浪网技术(中国)有限公司 | 一种数据恢复方法及装置 |
CN106155596A (zh) * | 2016-08-03 | 2016-11-23 | 深圳市文鼎创数据科技有限公司 | 数据写入方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090542A (zh) * | 2019-12-17 | 2020-05-01 | 深圳忆联信息系统有限公司 | 基于异常掉电的异常块识别方法、装置及计算机设备 |
CN113110880A (zh) * | 2020-01-10 | 2021-07-13 | 中移物联网有限公司 | 一种系统启动方法及电子设备 |
CN114490177A (zh) * | 2021-12-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 数据存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461641B (zh) | 一种数据烧写方法、系统、烧写设备以及目标设备 | |
CN109542665A (zh) | 掉电恢复方法、数据写入方法及装置 | |
CN108573007A (zh) | 检测数据一致性的方法、装置、电子设备及存储介质 | |
CN103631539B (zh) | 基于擦除编码机制的分布式存储系统及其存储方法 | |
CN107608705A (zh) | 一种无线wifi视频设备及其固件升级方法 | |
CN113311993B (zh) | 数据存储方法及数据读取方法 | |
CN107133132B (zh) | 数据发送方法、数据接收方法和存储设备 | |
CN110442473A (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN104408154A (zh) | 重复数据删除方法及装置 | |
CN104765652A (zh) | 一种数据备份和数据恢复方法及装置 | |
CN105573872B (zh) | 数据存储系统的硬盘维护方法和装置 | |
CN106775481B (zh) | 数据读取方法及设备 | |
CN108108262A (zh) | 具有检查所选择的存储器访问的硬件检查单元的集成电路 | |
CN104780123B (zh) | 一种网络包收发处理装置及其设计方法 | |
CN105847723B (zh) | 视频信息的备份方法及装置 | |
CN112506941B (zh) | 核查点的处理方法和装置、电子设备和存储介质 | |
CN116795295B (zh) | 磁盘阵列中的数据处理方法及装置、存储介质、电子设备 | |
CN110297926B (zh) | 星载图像处理装置在轨配置方法 | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN110968255B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN115981979A (zh) | 日志数据处理方法、装置、设备、介质和计算机程序产品 | |
CN114003172B (zh) | 存储容量校正方法、装置、计算机设备以及存储介质 | |
CN118297594A (zh) | 资源处理方法、装置、计算机设备和区块链系统 | |
CN109241110A (zh) | 订单管理方法及系统、电子设备、存储介质 | |
CN107704548A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190329 |