CN111984193A - 数据编写存储报错的恢复方法、系统、设备及存储介质 - Google Patents
数据编写存储报错的恢复方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111984193A CN111984193A CN202010828622.9A CN202010828622A CN111984193A CN 111984193 A CN111984193 A CN 111984193A CN 202010828622 A CN202010828622 A CN 202010828622A CN 111984193 A CN111984193 A CN 111984193A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- writing
- stored
- storage medium
- 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 93
- 238000011084 recovery Methods 0.000 title claims abstract description 92
- 238000013500 data storage Methods 0.000 claims abstract description 162
- 238000004088 simulation Methods 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 28
- 238000000605 extraction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 description 19
- 230000002159 abnormal effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical 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
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据编写存储报错的恢复方法、系统、终端设备及计算机存储介质,通过从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。本发明避免了数据恢复的局限性,能够更加准确的恢复得到存储介质编程错误而未成功存储的数据,数据恢复的准确率高,有效的避免了恢复后固态存储的数据与源数据之间存在差异的现象。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据编写存储报错的恢复方法、系统、终端设备及计算机存储介质。
背景技术
时下,在基于数据存储介质(如3D Nand Flash:一种用于将数据进行固态存储的存储产品)将数据编写入固态存储设备中时,通常会难以避免的出现编程失败导致数据存储出现错误的现象。
尽管现有已经存在针对上述现象提出的数据恢复方式,例如通过对整体数据进行异或操作来对编写存储过程中报错的部分数据进行恢复,但是,该数据恢复方式通常只能够在数据量小的情况下,被用于实现对编写报错的数据进行恢复,其具有非常大的局限性,并且,上述方式还只能够恢复得到十分模糊的数据,如此,在面对数据量越大的编写存储所出现的报错时,该方案所恢复得出的数据与源数据之间的差异将越大。
综上,现有对数据编写进行固态存储的报错数据恢复方式,局限性高且数据恢复准确率低下。
发明内容
本发明的主要目的在于提供一种数据编写存储报错的恢复方法、装置、终端设备及计算机存储介质,旨在解决现有技术中,对数据编写进行固态存储的报错数据恢复方式,局限性高且数据恢复效率低下的技术问题。
为实现上述目的,本发明提供一种数据编写存储报错的恢复方法,所述数据编写存储报错的恢复方法包括:
从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
进一步地,所述待恢复数据标识包括第一数据标识和第二数据标识,所述恢复数据包括第一数据和第二数据,
所述基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据的步骤,包括:
基于所述第一数据标识利用所述奇数页数据的第一异或结果进行异或操作以恢复得到所述第一数据;
基于所述第二数据标识利用所述偶数页数据的第二异或结果进行异或操作以恢复得到所述第二数据。
进一步地,在所述若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识的步骤之前,还包括:
向所述存储介质发送数据存储状态查询指令,以供所述存储介质基于所述数据存储状态查询指令反馈编写状态提示,其中,所述编写状态提示至少包括编写错误提示;
所述向所述存储介质发送数据存储状态查询指令的步骤,包括:
根据预设操作生成实时的数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质;
按照预设周期读取所述数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质。
进一步地,在所述将所述待存储数据传输至预设的存储介质以进行编写存储的步骤之后,还包括:
将所述存储介质编写存储的奇数页数据和偶数页数据分别异或后备份至临时备份库,其中,所述临时备份库包括第一备份库和第二备份库,所述第一备份库中备份有所述奇数页数据的第一异或结果,所述第二备份库中备份有所述偶数页数据的第二异或结果;
所述提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果的步骤,包括:
从所述第一备份库当中提取所述奇数页数据的第一异或结果,并从所述第二备份库中提取所述偶数页数据的第二异或结果。
进一步地,在所述从接收到的数据存储命令中解析待存储数据的步骤之后,还包括:
将所述数据存储命令备份至预设的数据源模拟备份库;
在所述基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据进行异或操作得到恢复数据的步骤之后,还包括:
将所述恢复数据备份至所述数据源模拟备份库,并基于所述数据源模拟备份库执行数据的编写存储。
进一步地,所述基于所述数据源模拟备份库执行数据的编写存储的步骤,包括:
根据所述恢复数据从所述数据源模拟备份库提取目标数据存储命令并解析获取目标待存储数据;
将所述目标待存储数据传输至所述存储介质以进行数据的覆盖编写存储。
进一步地,在所述基于所述数据源模拟备份库执行数据的编写存储的步骤之后,还包括:
若检测到所述数据源模拟备份库中的目标待存储数据被编写存储完成,则继续接受新的数据存储命令并执行数据的编写存储。
此外,为实现上述目的,本发明还提供一种数据编写存储报错的恢复系统,所述数据编写存储报错的恢复系统包括:
存储模块,用于从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
报错处理模块,用于若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取模块,用于提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
数据恢复模块,用于基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
本发明数据编写存储报错的恢复系统的各功能模块在运行时实现如上述中的数据编写存储报错的恢复方法的步骤。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据编写存储报错的恢复程序,所述数据编写存储报错的恢复程序被所述处理器执行时实现如上述中的数据编写存储报错的恢复方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的数据编写存储报错的恢复方法的步骤。
本发明提出的数据编写存储报错的恢复方法、系统、终端设备以及计算机存储介质,通过从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
本发明将存储介质通过编程存储数据时产生的奇数页数据和偶数页数据分开进行异或后得到的各自的异常结果进行备份,从而,在存储介质编程出现错误致使正在编写的当前页以及当前页之前一页的数据没有正确存储到固态设备当中的情况下,即可分别利用已经备份的奇数页数据和偶数页数各自的异常结果再次进行异或操作,从而准确的恢复得到存储介质编程出错而未成功存储的那部分数据。
相比于现有针对数据整体进行异或操作来恢复数据的方式,本发明能够更高效的适应于大数据量数据编写存储过程报错情况下的数据恢复操作,避免了数据恢复的局限性,并且,本发明能够更加准确的恢复得到存储介质编程错误而未成功存储的数据,数据恢复的准确率高,有效的避免了恢复后固态存储的数据与源数据之间存在差异的现象。
附图说明
图1是本发明实施例方案涉及终端设备的硬件运行的结构示意图;
图2是本发明一种数据编写存储报错的恢复方法一实施例的流程示意图;
图3是本发明一种数据编写存储报错的恢复方法一实施例中步骤S400的细化流程示意图;
图4是本发明一种数据编写存储报错的恢复系统的模块结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及终端设备的硬件运行环境的结构示意图。
需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是数据存储控制终端,PC,便携计算机等终端设备。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分布式任务的处理程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持分布式任务的处理程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据编写存储报错的恢复程序,并执行以下操作:
从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
进一步地,所述待恢复数据标识包括第一数据标识和第二数据标识,所述恢复数据包括第一数据和第二数据,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,还执行以下操作:
基于所述第一数据标识利用所述奇数页数据的第一异或结果进行异或操作以恢复得到所述第一数据;
基于所述第二数据标识利用所述偶数页数据的第二异或结果进行异或操作以恢复得到所述第二数据。
进一步地,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,在执行若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识之前,还执行以下操作:
向所述存储介质发送数据存储状态查询指令,以供所述存储介质基于所述数据存储状态查询指令反馈编写状态提示,其中,所述编写状态提示至少包括编写错误提示;
处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,还执行以下操作:
根据预设操作生成实时的数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质;
按照预设周期读取所述数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质。
进一步地,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,在执行将所述待存储数据传输至预设的存储介质以进行编写存储之后,还执行以下操作:
将所述存储介质编写存储的奇数页数据和偶数页数据分别异或后备份至临时备份库,其中,所述临时备份库包括第一备份库和第二备份库,所述第一备份库中备份有所述奇数页数据的第一异或结果,所述第二备份库中备份有所述偶数页数据的第二异或结果;
处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,还执行以下操作:
从所述第一备份库当中提取所述奇数页数据的第一异或结果,并从所述第二备份库中提取所述偶数页数据的第二异或结果。
进一步地,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,在执行从接收到的数据存储命令中解析待存储数据之后,还执行以下操作:
将所述数据存储命令备份至预设的数据源模拟备份库;
处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,在执行基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据之后,还执行以下操作:
将所述恢复数据备份至所述数据源模拟备份库,并基于所述数据源模拟备份库执行数据的编写存储。
进一步地,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,还执行以下操作:
根据所述恢复数据从所述数据源模拟备份库提取目标数据存储命令并解析获取目标待存储数据;
将所述目标待存储数据传输至所述存储介质以进行数据的覆盖编写存储。
进一步地,处理器1001可以调用存储器1005中存储的数据编写存储报错的恢复程序,在执行基于所述数据源模拟备份库执行数据的编写存储之后,还执行以下操作:
若检测到所述数据源模拟备份库中的目标待存储数据被编写存储完成,则继续接受新的数据存储命令并执行数据的编写存储。
基于上述的结构,提出本发明数据编写存储报错的恢复方法的各个实施例。
请参照图2,图2为本发明数据编写存储报错的恢复方法第一实施例的流程示意图。
本发明实施例提供了数据编写存储报错的恢复方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例数据编写存储报错的恢复方法应用于上述对数据存储进行控制的终端设备,本发明实施例终端设备可以是数据存储控制终端,PC,便携计算机等终端设备,在此不做具体限制。
本实施例数据编写存储报错的恢复方法包括:
步骤S100,从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
需要说明的是,在本实施例中,预设的存储介质为预先选中用于通过编程来将数据存储至固态存储设备当中的存储介质。具体地,当前用于对数据存储进行控制的终端设备基于将数据存储至固态存储设备当中的存储效率考虑,该终端设备可以利用现有较为成熟的数据存储介质(例如3D Nand Flash)作为上述的存储介质,从而实现高效率的数据编写存储过程。应当理解的是,基于科学技术水平的不断进步和发展,在未来甚至当下当然还会开发或者已经应用有更多基于与该3D Nand Flash设计原理相似或者相同的其他存储介质(诸如磁盘和卡等等数据存储介质),因此,基于实际应用的不同设计需要,在其他实时方式当中当然也可以采用其他成熟的存储介质来作为上述的存储介质,本发明实施例数据编写存储报错的恢复方法,并不对预设的存储介质的种类进行具体限定。
当前用于对数据存储进行控制的终端设备通过持续接收来自数据拥有方(为便于表述,下文均采用“host方”替代该数据拥有方进行阐述)下发的数据存储命令,然后解析该数据存储命令以从该数据存储命令中提取出host方在当前数据存储命令所指定需要存储至固态存储设备当中的待存储数据,待终端设备提取出该待存储数据之后,随即将该待存储数据传输给预先选中用于通过编程来将数据存储至固态存储设备当中的存储介质,以供该存储介质针对待存储数据进行编程以存储至固态存储设备。
具体地,例如,host方在需要将自己产生的数据进行固态存储时,即时生成一个数据存储命令并将该数据作为待存储数据封装至该输出存储命令当中,然后,该host方将该数据存储命令下发至预先连接在下游用于控制将数据存储至固态存储设备的终端设备上,终端设备在接收到该数据存储命令之后,基于预先与host方协商确定的命令解析方式解析该数据存储命令从而提取出封装的待存储数据,终端设备在提取得到该待存储数据之后,即刻调用预先选中的存储介质-3D Nand Flash,并将该待存储数据传递至该3D NandFlash上,从而藉由该3D Nand Flash通过编程方式依次存储数据的设计,将该待存储数据按照连续数据页的数据存储格式,存储到预先指定的固态存储设备当中的某一个数据块(block)上。
步骤S200,若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
需要说明的是,在本实施例中,存储介质在基于编程方式依次将待存储数据存储到固态存储设备的过程中,该存储介质会基于针对将数据编写存储至固态存储设备当中的状态的查询指令(即数据存储状态查询指令),反馈当前进行数据编写以将待存储数据存储至固态存储设备中的编写状态提示,该编写状态提示至少包括编写错误提示和编写正常提示,此外,存储介质会在该编写状态提示中封装编写存储的当前数据页以及当前数据页前一数据页上的数据编写状态。
终端设备在将从接收到的数据存储命令解析提取出的待存储数据传输至存储介质当中之后,若在进一步接收数据存储命令以解析提取新的待存储数据、等待存储介质反馈数据编写存储状态或者处于空闲状态的过程中,接收到了该存储介质基于数据存储状态查询指令所反馈的编写错误提示,终端设备即判断到存储介质当前针对待存储数据的编写存储过程出错造成了部分数据未正确存入固态存储设备,从而,终端设备随即从该编写错误提示当中读取编写错误的当前数据页以及当前数据页前一页的页码,然后将该页码作为当前需要进行恢复的部分数据(存储介质未正确存入固态存储设备的那部分数据)的待恢复数据标识。
具体地,例如,存储介质在基于编程的方式将终端设备传输的待存储数据存储到固态存储设备当中的某一个数据块-block0过程中,若存储介质在该数据块-block0的第3个数据页上编写待存储数据进行固态存储时,接收到了来自终端设备所发出的数据存储状态查询指令,则存储介质开始将当前第3个数据页和在当前第3个数据页之前的第2个数据页的数据编写状态(编写正常或者编写错误),封装成编写状态提示反馈给终端设备;从而,在终端设备所接收到的该编写状态提示为一个编写错误提示(存储介质编写第2个数据页和第3个数据页时编写错误),则终端设备即从该编写错误提示当中读取出第2个数据页的页码2和第3个数据页的页码3,然后将该页码2和页码3作为当前需要进行恢复得出的那部分待存储数据(存储介质未正确存入到该数据块-block0第2个数据页和第3个数据页上的那部分待存储数据)的待恢复数据标识。
进一步地,在一种可行的实施例中,在上述步骤S200,若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识之前,本发明实施例数据编写存储报错的恢复方法,还可以包括:
步骤S500,向所述存储介质发送数据存储状态查询指令,以供所述存储介质基于所述数据存储状态查询指令反馈编写状态提示,其中,所述编写状态提示至少包括编写错误提示。
终端设备在进一步接收数据存储命令以解析提取新的待存储数据、等待存储介质反馈数据编写存储状态或者处于空闲状态的过程中,通过实时或者周期性的向正在执行编程以对待存储数据进行固态存储的存储介质,发送针对存储介质将数据编写存储至固态存储设备当中的状态的查询指令-数据存储状态查询指令,以供存储介质在接收到该数据存储状态查询指令之后,反馈当前进行数据编写以将待存储数据存储至固态存储设备中的编写状态提示(即编写错误提示或者编写正常提示)。
进一步地,在一种可行的实施例中,上述步骤S500中,“向所述存储介质发送数据存储状态查询指令”的步骤,可以包括:
步骤S501,根据预设操作生成实时的数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质;
需要说明的是,在本实施例中,预设操作为用于触发数据存储状态查询指令的操作,具体地,例如,该操作可以为工作人员对终端设备前端屏幕上所输出显示的用户图形界面中预置的按键(该按键被设计为用于触发数据存储状态查询指令)进行触按,或者,该操作还可以为工作人员基于终端设备配置的声音采集模块输入用于触发数据存储状态查询指令的语音内容,例如,该语音内容的具体文本信息可以为:查询数据存储状态。
终端设备在检测到用于触发数据存储状态查询指令的操作时,即刻生成一个实时的数据存储状态查询指令,然后将该数据存储状态查询指令发送给当前正在执行编程以对待存储数据进行固态存储的存储介质。
步骤S502,按照预设周期读取所述数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质。
需要说明的是,在本实施例中预设周期为终端设备基于工作人员的配置操作,生成用于触发数据存储状态查询指令的时间周期。
具体地,例如,终端设备基于用户与前端用户图形界面输入的配置操作,生成每间隔5分钟即触发生成一个数据存储状态查询指令的循环时间周期,从而在存储介质-3DNand Flash执行编程对待存储数据进行固态存储的过程中,终端设备随即开始按照生成的循环时间周期,每间隔5分钟生成一个数据存储状态查询指令,然后将该数据存储状态查询指令发送给当前正在执行编程以对待存储数据进行固态存储的存储介质-3D Nand Flash。
步骤S300,提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
终端设备在接收到存储介质反馈的编写错误提示,从而判断到存储介质当前针对待存储数据的编写存储过程出错造成了部分数据未正确存入固态存储设备,进而从该编写错误提示当中读取页码,然后将该页码作为当前需要进行恢复的部分数据的待恢复数据标识之后,终端设备开始从预设的临时备份库当中提取奇数页数据和偶数页数据各自的异或结果,该奇数页数据和偶数页数据的异或结果为:对存储介质将待存储数据编写存储至固态存储设备过程,分别针对通过编程形成的奇数页数据和偶数页数据进行异或操作后备份得到的奇数页数据的异常结果和偶数页数据的异常结果。
进一步地,在一种可行的实施例中,在上述步骤S300之前,本发明实施例数据编写存储报错的恢复方法,还可以包括:
步骤S600,将所述存储介质编写存储的奇数页数据和偶数页数据分别异或后备份至临时备份库,其中,所述临时备份库包括第一备份库和第二备份库,所述第一备份库中备份有所述奇数页数据的第一异或结果,所述第二备份库中备份有所述偶数页数据的第二异或结果。
需要说明的是,在本实施例中,临时备份库的第一备份库和第二备份库,可由终端设备在运行内存当中单独创建、用于临时针对存储介质编程存写在固态存储设备上的连续奇数页数据以及连续偶数页数据各自的异或结果进行备份存储的空间,其中,奇数页数据的第一异或结果备份在第一备份库,偶数页数据的第二异或结果备份在第二备份库,第一异或结果为单独针对连续的奇数页数据进行异或操作后得到异常结果,第二异或结果为单独对连续的偶数页数据进行异或操作后得到异常结果。此外,基于不同设备运行内存的不同设计需要,在其他实时方式当中,终端设备当然也可以在本端的固态磁盘上创建该临时备份库,并待当前待存储数据被全部正确的存储至固态存储设备当中之后,终端设备随即在该固态磁盘上清除该临时备份库,并且,该第一备份库和第二备份库各自的数量可以是多个,如此,终端设备可实现基于该多个相对应的第一备份库和第二备份库恢复得出更多的数据。
终端设备在存储介质通过编程方式将待存储数据按照连续数据页的数据存储格式,依次存储到固态存储设备的过程中,针对存储介质所编写形成的数据页页码为奇数的奇数页数据进行异或操作得到第一异或结果,并将该第一异或结果备份至临时备份库中的第一备份库,并针对存储介质所编写形成的数据页页码为偶数的偶数页数据进行异或操作得到第二异或结果,并将该第二异或结果备份至临时备份库中的第二备份库。
进一步地,上述步骤S300,提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果,可以包括:
步骤S301,从所述第一备份库当中提取所述奇数页数据的第一异或结果,并从所述第二备份库中提取所述偶数页数据的第二异或结果。
终端设备在接收到存储介质反馈的编写错误提示,从而判断到存储介质当前针对待存储数据的编写存储过程出错造成了部分数据未正确存入固态存储设备,进而从该编写错误提示当中读取页码,然后将该页码作为当前需要进行恢复的部分数据的待恢复数据标识之后,终端设备开始从临时备份库的第一备份库当中提取出奇数页数据的第一异或结果,并从该临时备份库的第二备份库当中提取出偶数页数据的第二异或结果。
步骤S400,基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
终端设备在确定得到待恢复数据标识,并从临时备份库当中提取出奇数页数据的第一异或结果以及偶数页数据的第二异或结果之后,终端设备分别基于该待恢复数据标识对应的存储介质编写错误的部分数据,与该第一异或结果和第二异或结果再次进行现有成熟的异或操作,以分别异或恢复得出待存储数据当中由存储介质编写错误而为正确存储至固态存储设备的恢复数据。
进一步地,在一种可行的实施例中,待恢复数据标识包括第一数据标识和第二数据标识,恢复数据包括第一数据和第二数据。
需要说明的是,在本实施例中,终端设备在接收到存储介质反馈的编写错误提示,并从该编写错误提示当中读取编写错误的当前数据页以及当前数据页前一页的页码,然后将该页码作为当前需要进行恢复的部分数据的待恢复数据标识时,终端设备将为奇数的页码确定为待恢复数据标识中的第一数据标识,并将为偶数的页码确定为待恢复数据标识当中的第二数据标识。
具体地,例如,在终端设备所接收到存储介质基于数据存储状态查询指令所反馈的编写状态提示为编写错误提示(存储介质编写第2个数据页和第3个数据页时编写错误),并从该编写错误提示当中读取出第2个数据页的页码2和第3个数据页的页码3之后,终端设备将为奇数的页码3作为当前需要进行恢复得出的待恢复数据标识当中的第一数据标识,并将为偶数的页码2作为当前需要恢复得出的待恢复数据标识当中的第二数据标识。此外,恢复数据即为终端设备当前需要恢复出的存储介质因编写错误而未正确进行固态存储的待存储数据,该恢复数据包括第一数据和第二数据这两部分数据。
上述步骤S400,基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据,可以包括:
步骤S401,基于所述第一数据标识利用所述奇数页数据的第一异或结果进行异或操作以恢复得到所述第一数据;
终端设备通过第一数据标识提取出存储介质编程错误而未正确进行固态存储的部分数据,然后利用该部分数据与从第一备份库当中提取出的奇数页数据的第一异或结果再次进行异或操作,从而反向异或恢复出第一数据。
需要说明的是,在本实施例中,第一数据即为通过第一数据标识对应的存储介质编程错误而未正确进行固态存储的部分数据。
具体地,例如,终端设备基于第一数据标识-页码3,在存储介质-3D Nand Flash将待存储数据存储到固态存储设备中的数据块-block0中,提取出存储介质-3D Nand Flash在该数据块-block0的第3个数据页上编写的部分数据(该部分数据为存储介质-3D NandFlash编写错误而未正确将待存储数据进行固态存储的错误数据),然后,终端设备利用该第3个数据页上编写的部分数据与从临时备份库的第一备份库当中提取出的连续奇数页数据经过异或操作后的异常结果再一次进行单独的异或操作(基于现有成熟的异或算法实现),从而异或恢复得到恢复数据(存储介质-3D Nand Flash编写错误而未正确进行固态存储的待存储数据)当中的第一数据。
步骤S402,基于所述第二数据标识利用所述偶数页数据的第二异或结果进行异或操作以恢复得到所述第二数据。
终端设备通过第二数据标识提取出存储介质编程错误而未正确进行固态存储的部分数据,然后利用该部分数据与从第二备份库当中提取出的偶数页数据的第二异或结果再次进行异或操作,从而异或恢复出第二数据。
需要说明的是,在本实施例中,第二数据即为通过第二数据标识对应的存储介质编程错误而未正确进行固态存储的部分数据。
具体地,例如,终端设备基于第二数据标识-页码2,在存储介质-3D Nand Flash将待存储数据存储到固态存储设备中的数据块-block0中,提取出存储介质-3D Nand Flash在该数据块-block0的第2个数据页上编写的部分数据,然后,终端设备利用该第2个数据页上编写的部分数据与从临时备份库的第二备份库当中提取出的连续偶数页数据经过异或操作后的异常结果再一次进行单独的异或操作,从而异或恢复得到恢复数据当中的第二数据。
在本实施例中,通过当前用于对数据存储进行控制的终端设备通过持续接收来自host方下发的数据存储命令,然后解析该数据存储命令以从该数据存储命令中提取出host方在当前数据存储命令所指定需要存储至固态存储设备当中的待存储数据,待终端设备提取出该待存储数据之后,随即将该待存储数据传输给预先选中用于通过编程来将数据存储至固态存储设备当中的存储介质,以供该存储介质针对待存储数据进行编程以存储至固态存储设备;若终端设备接收到了该存储介质基于数据存储状态查询指令所反馈的编写错误提示,终端设备即判断到存储介质当前针对待存储数据的编写存储过程出错造成了部分数据未正确存入固态存储设备,从而,终端设备随即从该编写错误提示当中读取编写错误的当前数据页以及当前数据页前一页的页码,然后将该页码作为当前需要进行恢复的部分数据的待恢复数据标识。
终端设备在从编写错误提示中确定出待恢复数据标识之后,随即开始从预设的临时备份库当中提取奇数页数据和偶数页数据各自的异或结果,该奇数页数据和偶数页数据的异或结果为:对存储介质将待存储数据编写存储至固态存储设备过程,分别针对通过编程形成的奇数页数据和偶数页数据进行异或操作后备份得到的奇数页数据的异常结果和偶数页数据的异常结果;然后,终端设备分别基于该待恢复数据标识对应的存储介质编写错误的部分数据,与该奇数页数据和偶数页数据各自的异或结果进行现有成熟的异或操作,以分别异或恢复得出待存储数据当中由存储介质编写错误而为正确存储至固态存储设备的恢复数据。
实现了,将存储介质通过编程存储数据时产生的奇数页数据和偶数页数据分开进行异或后得到的各自的异常结果进行备份,从而,在存储介质编程出现错误致使正在编写的当前页以及当前页之前一页的数据没有正确存储到固态设备当中的情况下,即可分别利用已经备份的奇数页数据和偶数页数各自的异常结果再次进行异或操作,从而准确的恢复得到存储介质编程出错而未成功存储的那部分数据。
相比于现有针对数据整体进行异或操作来恢复数据的方式,本发明能够更高效的适应于大数据量数据编写存储过程报错情况下的数据恢复操作,避免了数据恢复的局限性,并且,本发明能够更加准确的恢复得到存储介质编程错误而未成功存储的数据,数据恢复的准确率高,有效的避免了恢复后固态存储的数据与源数据之间存在差异的现象。
进一步地,提出本发明数据编写存储报错的恢复方法的第二实施例,在本发明数据编写存储报错的恢复方法的第二实施例中,在上述步骤S100中,在“从接收到的数据存储命令中解析待存储数据”的步骤之后,本发明实施例数据编写存储报错的恢复方法,还可以包括:
步骤A,将所述数据存储命令备份至预设的数据源模拟备份库;
需要说明的是,在本实施例中,终端设备为了预防在存储介质因编写错误而未成功将待存储数据编写存储至固态存储设备的情况下,终端设备持续接收host方下发的数据存储命令以调用存储介质执行数据存储操作,容易引起数据间映射关系紊乱进而导致数据不稳定的现象,终端设备通过在运行内存或者固态磁盘中构建一个临时的数据源模拟备份库,以用于对从host方下发的数据存储命令(或者从该数据存储命令中解析提取的待存储数据)进行备份。
终端设备在每一次接收到host方下发的数据存储命令并从该数据存储命里中提取得到待存储数据之后,终端设备便同步将该数据存储命令备份存储在已经构建好的数据源模拟备份库当中,然后再将该待存储数据传输给存储介质以供该存储介质执行数据的编写存储过程。
具体地,例如,终端设备在接收到host方基于自身产生的数据存储需求所下发的数据存储命令,并基于预先与host方协商确定的命令解析方式解析该数据存储命令从而提取出封装的待存储数据,终端设备在提取得到该待存储数据之后,首先将该数据存储命令备份到已经在运行内存当中临时构建的数据源模拟备份库进行临时存储,然后,终端设备开始存储介质-3D Nand Flash,并将该待存储数据传递至该3D Nand Flash上,藉由该3DNand Flash通过编程方式依次存储数据的设计,将该待存储数据按照连续数据页的数据存储格式,存储到预先指定的固态存储设备当中的某一个数据块(block)上。
进一步地,在另一种可行的实施例中,终端设备还可以在从接收到的数据存储命令当中解析提取出待存储数据之后,在将该待存储数据下发至存储介质-3D Nand Flash的同时,同步的将该待存储数据备份至数据源模拟备份库中进行临时存储,或者,在将该待存储数据下发至存储介质-3D Nand Flash之前,将该待存储数据备份至数据源模拟备份库中进行临时存储。
进一步地,在上述步骤S400,基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据之后,本发明实施例数据编写存储报错的恢复方法,还可以包括:
步骤B,将所述恢复数据备份至所述数据源模拟备份库,并基于所述数据源模拟备份库执行数据的编写存储。
需要说明的是,在本实施例中,为了确保在存储介质编写错误从而未正确的对待存储数据进行固态存储情况下,待存储数据的在固态存储设备当中的整体稳定性,终端设备还可以将通过基于待恢复数据标识对应的部分数据,分别与奇数页数据和偶数页数据各自的异或结果进行异或操作以分别恢复得出的恢复数据,也存储到临时存储有存储介质正在进行固态存储的待存储数据的数据源模拟备份库当中,以便于控制存储介质继续执行待存储数据的编写存储过程。
终端设备在分别基于确定的待恢复数据标识对应的存储介质编写错误的部分数据,与从临时备份库当中提取的奇数页数据和偶数页数据各自的异或结果进行现有成熟的异或操作,以分别异或恢复得出待存储数据当中由存储介质编写错误而为正确存储至固态存储设备的恢复数据之后,终端设备同样的也将该恢复数据备份存储到数据源模拟备份库当中,然后,终端设备开始将该数据源模拟备份库作为新的host方,并基于恢复数据定位到该数据源模拟备份库当中所存储多个待存储数据中的目标待存储数据,最后,终端设备调用存储介质继续将该目标待存储数据编写存储至固态存储设备上新的数据块-block1上。
需要说明的是,在本实施例中,终端设备在接收到存储介质所反馈的编写错误提示之后,随即告知host方停止下发新的数据存储命令,但是由于存储介质基于自身设计,终端设备在接收到该编写错误提示的时刻可能已经接收到多条等待执行的数据存储命令,从而终端设备按照接收到该多条数据存储命令的接收时间,按序将各数据存储命令备份到数据源模拟备份库中(终端设备最多可以备份32条数据存储命令或者从该32条数据存储命令中提取出的待存储数据)。
进一步地,在另一种可行的实施例中,终端设备除了将恢复数据同样备份到数据源模拟备份库当中,还可以通过在运行内存或者固态存储当中重新构建一个临时的存储空间,然后将该恢复数据备份存储到该存储空间当中进行临时的存储。
进一步地,上述步骤B中,“基于所述数据源模拟备份库执行数据的编写存储”的步骤,可以包括:
步骤B1,根据所述恢复数据从所述数据源模拟备份库提取目标数据存储命令并解析获取目标待存储数据;
终端设备检测数据源模拟备份库当中存储的多条数据存储命令当中,分装包含有恢复数据的目标数据存储命令,然后从该目标数据存储命令当中解析提取出需要重新进行编写存储的目标待存储数据。
具体地,例如,终端设备通过检测数据源模拟备份库中按序存储的多条数据存储命令,各自所封装待存储数据的数据目录来确定包含有恢复数据的目标数据存储命令,然后终端设备重新基于已经跟host方协商好的命令解析方式,从该目标数据存储命令当中解析并提取出待存储数据作为当前需要调用存储介质重新进行编写存储的目标待存储数据。
步骤B2,将所述目标待存储数据传输至所述存储介质以进行数据的覆盖编写存储。
终端设备在从目标数据存储命令当中提出目标待存储数据之后,终端设备再次调用存储介质并将该目标待存储数据传输至该存储介质上,并控制该存储介质自编恢复数据在目标待存储数据所在位置开始,重新开始编程以将该目标待存储数据自恢复数据以后的部分数据存储到固态存储设备的新的数据块上。
需要说明的是,在本实施例中,终端设备在接收到存储介质所反馈的编写错误提示并通知host方停止下发新的数据数据存储命令的同时,终端设备还同步控制存储介质停止继续执行编程以进行数据固态存储的过程。
具体地,例如,终端设备将从目标数据存储命令当中解析并提取出的待存储数据,作为当前需要调用重新进行编写存储的目标待存储数据之后,终端设备重新调用存储介质-3D Nand Flash,然后将目标待存储数据传输给该存储介质-3D Nand Flash并定位恢复数据(存储介质-3D Nand Flash在将待存储数据编写存储至数据块-block0的过程中,3DNand Flash应当正确编写存储的第2页数据和第3页数据),在当前目标待存储数据当中所在的位置,然后,控制3D Nand Flash重新通过编程方式,在固态存储设备上新的数据块-block1中,自该位置开始重新编写第2页数据和第3页数据,然后依次按序编写以将该目标待存储数据全部重新存储到固态存储设备中。
需要说明的是,在本实施例中,由于终端设备在接收到存储介质所反馈的编写错误提示时,该存储介质当前可能已经在固态存储设备当中向后编写了多页数据(例如,存储介质虽然在当前报错了第2页数据和第3页数据的编写错误提示,但存储介质当前实际已经在数据块-block0当中编写完成了第5页数据),从而终端设备在调用存储介质重新在固态存储设备新的数据块(block1)上自恢复数据所在位置开始编写存储时,将会覆盖掉存储介质已经在固态存储设备当中向后编写的多页数据(即,重新在数据块-block1上编写的第2页数据至第5页数据,覆盖在数据块-block0编写的第2页数据至第5页数据)。
进一步地,在上述步骤B之后,本发明实施例数据编写存储报错的恢复方法,还可以包括:
步骤C,若检测到所述数据源模拟备份库中的数据存储命令所封装的待存储数据被编写存储完成,则继续接受新的数据存储命令并执行数据的编写存储。
需要说明的是,在本实施例中,终端设备在从数据源模拟备份库当中,将从目标数据存储命令解析提取的,目标待存储数据传输至存储介质,且存储介质完成对该目标待存储数据的覆盖编写存储之后,终端设备随即开始在数据源模拟备份库当中按序存储的多条数据存储命令中,自排列在目标数据存储命令之后的数据存储命令开始,依次解析提取待存储数据并将该存储数据传输给存储介质进行编写存储,并直至数据源模拟备份库当中存储的多条数据存储命令各自的待存储数据全部被存储介质存储到固态存储设备上。
终端设备在将数据源模拟备份库中自目标数据存储命令开始的全部数据存储命令中,各自封装的待存储数据依次传输至存储介质,并待该存储介质完成将最后接收到的待存储数据编写存储至固态存储设备当中之后,终端设备重新通知host方开始重新下发新的数据存储命令,以继续执行从该数据存储命令解析提取新的待存储数据并调用存储介质针对该新的待存储数据进行编写存储的过程。
具体地,例如,终端设备在存储介质-3D Nand Flash将数据源模拟数据库当中排列存储的自目标数据存储命令开始至最后一条的数据存储命令中,各自所封装的待存储数据,全部正确的编写存储到固态存储设备当中的一个或者多个数据块(即数据块-block1,或者数据块-block1至数据块-blockn,其中,n为大于1的正整数)之后,终端设备通知host方当前可以继续下发新的数据存储命令,从而开始持续接收host方重新开始下发的新的数据存储命令并执行,以继续调用存储介质-3D Nand Flash通过编程方式,对该新的数据存储命令当中的待存储数据进行固态存储。
本实施例中,通过终端设备在每一次接收到host方下发的数据存储命令并从该数据存储命里中提取得到待存储数据之后,终端设备便同步将该数据存储命令备份存储在已经构建好的数据源模拟备份库当中,然后再将该待存储数据传输给存储介质以供该存储介质执行数据的编写存储过程;进而,在存储介质反馈编写错误提示,且终端设备在分别基于确定的待恢复数据标识对应的存储介质编写错误的部分数据,与从临时备份库当中提取的奇数页数据和偶数页数据各自的异或结果进行现有成熟的异或操作,以分别异或恢复得出待存储数据当中由存储介质编写错误而为正确存储至固态存储设备的恢复数据之后,终端设备同样的也将该恢复数据备份存储到数据源模拟备份库当中,最后,终端设备开始将该数据源模拟备份库作为新的host方,并基于恢复数据定位到该数据源模拟备份库当中所存储多个待存储数据中的目标待存储数据,最后,终端设备调用存储介质继续将该目标待存储数据编写存储至固态存储设备上新的数据块-block1上。
实现了将存储介质编写错误从而未正确进行固态存储的部分数据,连同待存储数据自该部分数据开始之后的全部数据,重新编写存储在新的数据块上,以令数据间的映射关系的重新映射,避免了因存储介质在中间编写数据错误导致整体数据存储的映射出现紊乱的错误现象,确保了对待存储数据进行固态存储的稳定性。
此外,还通过终端设备在存储介质反馈编写错误提示时,及时通知host方停止下发数据存储命令,然后在将数据源模拟备份库中自目标数据存储命令开始的全部数据存储命令中,各自封装的待存储数据依次传输至存储介质,并待该存储介质完成将最后接收到的待存储数据编写存储至固态存储设备当中之后,终端设备重新通知host方开始重新下发新的数据存储命令,以继续执行从该数据存储命令解析提取新的待存储数据并调用存储介质针对该新的待存储数据进行编写存储的过程。实现了对接收到的数据存储命令进行备份存储,避免了在存储介质出现编程错误的情形下,导致已经接收到的数据存储命令的丢失,保证了基于编写存储数据的效率。
此外,请参照图4,本发明实施例还提出一种数据编写存储报错的恢复系统,该数据编写存储报错的恢复系统,包括:
存储模块,用于从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
报错处理模块,用于若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取模块,用于提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
数据恢复模块,用于基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
优选地,所述待恢复数据标识包括第一数据标识和第二数据标识,所述恢复数据包括第一数据和第二数据,数据恢复模块,包括:
第一恢复单元,用于基于所述第一数据标识利用所述奇数页数据的第一异或结果进行异或操作以恢复得到所述第一数据;
第二恢复单元,用于基于所述第二数据标识利用所述偶数页数据的第二异或结果进行异或操作以恢复得到所述第二数据。
优选地,本发明数据编写存储报错的恢复系统,还包括:
发送模块,用于向所述存储介质发送数据存储状态查询指令,以供所述存储介质基于所述数据存储状态查询指令反馈编写状态提示,其中,所述编写状态提示至少包括编写错误提示;
发送模块,包括:
第一发送单元,用于根据预设操作生成实时的数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质;
第二发送单元,用于按照预设周期读取所述数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质。
优选地,本发明数据编写存储报错的恢复系统,还包括:
备份模块,用于将所述存储介质编写存储的奇数页数据和偶数页数据分别异或后备份至临时备份库,其中,所述临时备份库包括第一备份库和第二备份库,所述第一备份库中备份有所述奇数页数据的第一异或结果,所述第二备份库中备份有所述偶数页数据的第二异或结果;
提取模块,还用于从所述第一备份库当中提取所述奇数页数据的第一异或结果,并从所述第二备份库中提取所述偶数页数据的第二异或结果。
优选地,本发明数据编写存储报错的恢复系统的备份模块,还用于将所述数据存储命令备份至预设的数据源模拟备份库;
本发明数据编写存储报错的恢复系统,还包括:
模拟编写模块,用于将所述恢复数据备份至所述数据源模拟备份库,并基于所述数据源模拟备份库执行数据的编写存储。
优选地,模拟编写模块,包括:
提取单元,用于根据所述恢复数据从所述数据源模拟备份库提取目标数据存储命令并解析获取目标待存储数据;
覆盖编写单元,用于将所述目标待存储数据传输至所述存储介质以进行数据的覆盖编写存储。
优选地,本发明数据编写存储报错的恢复系统,还包括:
存储模块,用于若检测到所述数据源模拟备份库中的目标待存储数据被编写存储完成,则继续接受新的数据存储命令并执行数据的编写存储。
其中,本发明数据编写存储报错的恢复装置的各功能模块在运行时所实现的步骤,可参照上述本发明数据编写存储报错的恢复装置方法的各个三实施例,此处不再赘述。
此外,本发明实施例还提出一种终端设备,该终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据编写存储报错的恢复程序,该数据编写存储报错的恢复程序被所述处理器执行时实现如上述中的数据编写存储报错的恢复方法的步骤。
其中,在所述处理器上运行的数据编写存储报错的恢复程序被执行时所实现的步骤可参照本发明数据编写存储报错的恢复方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有数据编写存储报错的恢复程序,所述数据编写存储报错的恢复程序被处理器执行时实现如上所述的数据编写存储报错的恢复方法的步骤。
其中,在所述处理器上运行的数据编写存储报错的恢复程序被执行时所实现的步骤可参照本发明数据编写存储报错的恢复方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据编写存储报错的恢复方法,其特征在于,所述数据编写存储报错的恢复包括:
从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
2.如权利要求1所述的数据编写存储报错的恢复方法,其特征在于,所述待恢复数据标识包括第一数据标识和第二数据标识,所述恢复数据包括第一数据和第二数据,
所述基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据的步骤,包括:
基于所述第一数据标识利用所述奇数页数据的第一异或结果进行异或操作以恢复得到所述第一数据;
基于所述第二数据标识利用所述偶数页数据的第二异或结果进行异或操作以恢复得到所述第二数据。
3.如权利要求1所述的数据编写存储报错的恢复方法,其特征在于,在所述若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识的步骤之前,还包括:
向所述存储介质发送数据存储状态查询指令,以供所述存储介质基于所述数据存储状态查询指令反馈编写状态提示,其中,所述编写状态提示至少包括编写错误提示;
所述向所述存储介质发送数据存储状态查询指令的步骤,包括:
根据预设操作生成实时的数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质;
按照预设周期读取所述数据存储状态查询指令,并将所述数据存储状态查询指令发送至所述存储介质。
4.如权利要求1所述的数据编写存储报错的恢复方法,其特征在于,在所述将所述待存储数据传输至预设的存储介质以进行编写存储的步骤之后,还包括:
将所述存储介质编写存储的奇数页数据和偶数页数据分别异或后备份至临时备份库,其中,所述临时备份库包括第一备份库和第二备份库,所述第一备份库中备份有所述奇数页数据的第一异或结果,所述第二备份库中备份有所述偶数页数据的第二异或结果;
所述提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果的步骤,包括:
从所述第一备份库当中提取所述奇数页数据的第一异或结果,并从所述第二备份库中提取所述偶数页数据的第二异或结果。
5.如权利要求1所述的数据编写存储报错的恢复方法,其特征在于,在所述从接收到的数据存储命令中解析待存储数据的步骤之后,还包括:
将所述数据存储命令备份至预设的数据源模拟备份库;
在所述基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据的步骤之后,还包括:
将所述恢复数据备份至所述数据源模拟备份库,并基于所述数据源模拟备份库执行数据的编写存储。
6.如权利要求5所述的数据编写存储报错的恢复方法,其特征在于,所述基于所述数据源模拟备份库执行数据的编写存储的步骤,包括:
根据所述恢复数据从所述数据源模拟备份库提取目标数据存储命令并解析获取目标待存储数据;
将所述目标待存储数据传输至所述存储介质以进行数据的覆盖编写存储。
7.如权利要求5所述的数据编写存储报错的恢复方法,其特征在于,在所述基于所述数据源模拟备份库执行数据的编写存储的步骤之后,还包括:
若检测到所述数据源模拟备份库中的目标待存储数据被编写存储完成,则继续接受新的数据存储命令并执行数据的编写存储。
8.一种数据编写存储报错的恢复系统,其特征在于,所述数据编写存储报错的恢复系统包括:
存储模块,用于从接收到的数据存储命令中解析待存储数据,并将所述待存储数据传输至预设的存储介质以进行编写存储;
报错处理模块,用于若接收到所述存储介质反馈的编写错误提示,则确定所述编写错误提示指向的待恢复数据标识;
提取模块,用于提取所述存储介质编写存储的奇数页数据和偶数页数据各自的异或结果;
数据恢复模块,用于基于所述待恢复数据标识分别利用所述奇数页数据和所述偶数页数据各自的异或结果进行异或操作得到恢复数据。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据编写存储报错的恢复程序,所述数据编写存储报错的恢复程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据编写存储报错的恢复方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据编写存储报错的恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828622.9A CN111984193A (zh) | 2020-08-14 | 2020-08-14 | 数据编写存储报错的恢复方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828622.9A CN111984193A (zh) | 2020-08-14 | 2020-08-14 | 数据编写存储报错的恢复方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984193A true CN111984193A (zh) | 2020-11-24 |
Family
ID=73435573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010828622.9A Pending CN111984193A (zh) | 2020-08-14 | 2020-08-14 | 数据编写存储报错的恢复方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984193A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005558A1 (en) * | 2010-07-01 | 2012-01-05 | Steiner Avi | System and method for data recovery in multi-level cell memories |
US20140140136A1 (en) * | 2012-11-22 | 2014-05-22 | SK Hynix Inc. | Semiconductor device and method of operating the same |
US20140149826A1 (en) * | 2012-11-29 | 2014-05-29 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
CN104156174A (zh) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | 基于条带的固态硬盘raid实现方法及装置 |
US20150019933A1 (en) * | 2013-07-11 | 2015-01-15 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
CN105308685A (zh) * | 2013-01-25 | 2016-02-03 | 桑迪士克技术有限公司 | 在非易失性多级多个存储器管芯的编程中恢复附近数据 |
CN108038026A (zh) * | 2017-11-17 | 2018-05-15 | 中国科学院信息工程研究所 | 一种基于闪存的数据快速恢复方法与系统 |
US20190347029A1 (en) * | 2017-11-27 | 2019-11-14 | Nutanix, Inc. | Lossless data restore using multiple levels of lightweight snapshots |
US20200210280A1 (en) * | 2018-12-31 | 2020-07-02 | Micron Technology, Inc. | Multi-page parity protection with power loss handling |
-
2020
- 2020-08-14 CN CN202010828622.9A patent/CN111984193A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005558A1 (en) * | 2010-07-01 | 2012-01-05 | Steiner Avi | System and method for data recovery in multi-level cell memories |
US20140140136A1 (en) * | 2012-11-22 | 2014-05-22 | SK Hynix Inc. | Semiconductor device and method of operating the same |
US20140149826A1 (en) * | 2012-11-29 | 2014-05-29 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
CN105308685A (zh) * | 2013-01-25 | 2016-02-03 | 桑迪士克技术有限公司 | 在非易失性多级多个存储器管芯的编程中恢复附近数据 |
US20150019933A1 (en) * | 2013-07-11 | 2015-01-15 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
CN104156174A (zh) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | 基于条带的固态硬盘raid实现方法及装置 |
CN108038026A (zh) * | 2017-11-17 | 2018-05-15 | 中国科学院信息工程研究所 | 一种基于闪存的数据快速恢复方法与系统 |
US20190347029A1 (en) * | 2017-11-27 | 2019-11-14 | Nutanix, Inc. | Lossless data restore using multiple levels of lightweight snapshots |
US20200210280A1 (en) * | 2018-12-31 | 2020-07-02 | Micron Technology, Inc. | Multi-page parity protection with power loss handling |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8312322B2 (en) | System for automated generation of computer test procedures | |
CN110188000B (zh) | 基于虚拟化以及iSCSI或FC的应用容灾方法及系统 | |
CN103186461A (zh) | 一种现场数据的保存方法和恢复方法以及相关装置 | |
US8001091B2 (en) | Apparatus, system, and method for hierarchical rollback of business operations | |
CN109542682B (zh) | 一种数据备份方法、装置、设备和存储介质 | |
CN112114999A (zh) | 一种数据备份方法、数据恢复方法、装置及电子设备 | |
CN102779080B (zh) | 生成快照的方法、利用快照进行数据恢复的方法及装置 | |
CN104346274A (zh) | 程序调试器及一种程序的调试方法 | |
CN104166605A (zh) | 基于增量数据文件的数据备份方法及系统 | |
CN102999564B (zh) | 写入数据的方法、装置和设备 | |
US20070220481A1 (en) | Limited source code regeneration based on model modification | |
CN103810060A (zh) | 基于分布式数据库的数据备份方法及其系统 | |
CN112559140B (zh) | 数据一致性的事务控制方法、系统、设备及存储介质 | |
US20100185589A1 (en) | Disaster recovery data sync | |
CN114281591A (zh) | 存储节点故障处理方法、装置、设备及存储介质 | |
CN104375905A (zh) | 一种基于数据块的增量备份的方法和系统 | |
CN111078269A (zh) | 版本管理方法及恢复方法、编辑器、系统及存储介质 | |
JP2008033527A (ja) | ストレージ装置、ディスク装置及びデータ復元方法 | |
CN108241543B (zh) | 业务操作断点执行的方法、业务服务器及系统 | |
CN111984193A (zh) | 数据编写存储报错的恢复方法、系统、设备及存储介质 | |
CN111858164B (zh) | 一种持续数据保护方法、装置、设备及可读存储介质 | |
CN103294573B (zh) | 一种智能终端及其数据备份方法 | |
CN105760456A (zh) | 一种保持数据一致性的方法和装置 | |
CN116244186A (zh) | 一种操作系统测试管理方法、装置与计算设备 | |
CN110209530B (zh) | 一种恢复cdp系统io数据的方法及系统 |
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 |