CN110968454B - 确定已丢失数据块的恢复数据的方法和装置 - Google Patents
确定已丢失数据块的恢复数据的方法和装置 Download PDFInfo
- Publication number
- CN110968454B CN110968454B CN201811143456.8A CN201811143456A CN110968454B CN 110968454 B CN110968454 B CN 110968454B CN 201811143456 A CN201811143456 A CN 201811143456A CN 110968454 B CN110968454 B CN 110968454B
- Authority
- CN
- China
- Prior art keywords
- lost
- data
- data block
- memory
- recovery
- 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
Images
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/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/1438—Restarting or rejuvenating
-
- 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
Abstract
本发明公开了一种确定已丢失数据块的恢复数据的方法和装置,属于数据存储领域。所述方法包括:当目标条带存在数据块丢失时,将目标条带的未丢失数据块逐个读取到内存,如果内存中存在目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖其它未丢失数据块;对于目标条带的每个已丢失数据块,获取已丢失数据块对应的恢复矩阵,确定已丢失数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失数据块的中间恢复数据;当目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。采用本发明,可以减少对服务器内存的占用。
Description
技术领域
本发明涉及数据存储领域,特别涉及一种确定已丢失数据块的恢复数据的方法和装置。
背景技术
随着计算机技术的发展,计算机数据的数据量越来越多,因此,数据的存储以及丢失数据的恢复也成为重要研究方向。纠删码算法是一种用于数据存储及恢复的算法,具有节省存储空间的优点。
当通过纠删码算法对数据进行保护时,先将该数据分割成大小相同的多个数据块(可称为原始数据块),该多个数据块按照顺序排列形成一条数据块的条带。通过编码矩阵对原始数据块进行编码,生成校验数据块,然后将原始数据块和生成的校验数据块分别存储在磁盘中。当原始数据块发生丢失时,从磁盘中取出未丢失的所有数据块(包括原始数据块和校验数据块),将取出的未丢失数据块存储在内存中,然后,根据已丢失数据块和编码矩阵生成恢复矩阵,通过预设算法,根据生成的恢复矩阵与未丢失数据块就可以计算得到已丢失数据块。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在恢复数据的过程中,需要从磁盘中取出所有未丢失数据块,将这些数据块存储在内存中,且恢复的已丢失数据块也会存储在内存中,占用了较多内存。当同时对大批量的已丢失数据进行数据恢复处理时,会占用服务器大量内存。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种确定已丢失数据块的恢复数据的方法和装置。所述技术方案如下:
第一方面,提供了一种确定已丢失数据块的恢复数据的方法,所述方法包括:
当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
可选地,所述数据块包括原始数据块以及校验数据块。
可选地,所述目标条带的已丢失数据块均为校验数据块,所述将所述目标条带的未丢失数据块逐个读取到内存,包括:将所述目标条带的未丢失原始数据块逐个读取到内存;
所述当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据,包括:当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
可选地,所述目标条带的已丢失数据块包括原始数据块和校验数据块;
所述对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据,包括:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
可选地,所述当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据,包括:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
可选地,所述基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据,包括:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
第二方面,提供了一种确定已丢失数据块的恢复数据的装置,所述装置包括:
读取模块,用于当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
覆盖模块,用于每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
确定模块,用于对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
确定模块,还用于当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
可选地,所述数据块包括原始数据块以及校验数据块。
可选地,所述目标条带的已丢失数据块均为校验数据块,所述读取模块,还用于:将所述目标条带的未丢失原始数据块逐个读取到内存;
所述确定模块,用于:当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
可选地,所述目标条带的已丢失数据块包括原始数据块和校验数据块;
所述确定模块,还用于:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
可选地,所述确定模块,还用于:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
可选地,所述确定模块,还用于:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
第三方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现如上述第一方面所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第一方面所述的确定已丢失数据块的恢复数据的方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种确定已丢失数据块的恢复数据的方法的流程图;
图2是本发明实施例提供的一种确定已丢失数据块的恢复数据的流程示意图;
图3是本发明实施例提供的一种确定已丢失数据块的恢复数据的流程示意图;
图4是本发明实施例提供的一种确定已丢失数据块的恢复数据的流程示意图;
图5是本发明实施例提供的一种确定已丢失数据块的恢复数据的方法的流程图;
图6是本发明实施例提供的一种确定已丢失数据块的恢复数据的方法的流程图;
图7是本发明实施例提供的一种确定已丢失数据块的恢复数据的装置的结构示意图;
图8是本发明实施例提供的一种计算机设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种确定已丢失数据块的恢复数据的方法,该方法可以由计算机设备实现,其中,该计算机设备可以是服务器等。本发明中,条带是数据块根据排列顺序进行排列后形成的数据块条带。磁盘可以是本实施例中的服务器中的存储磁盘,也可以是其它服务器中的存储磁盘,如数据存储服务器、云存储服务器等,本发明对此不做限制。
本发明实施例提供了一种确定已丢失数据块的恢复数据的方法,该方法应用的场景为同一条带中的已丢失数据块均为原始数据块的情况,如图1所示,该方法的处理流程可以包括如下的步骤:
在步骤101中,当目标条带存在数据块丢失时,将目标条带的未丢失数据块逐个读取到内存。
一个可能的实施例中,纠删码算法是一种对数据进行保护以及恢复的算法,纠删码算法可以包括对数据编码的过程以及对数据进行恢复的过程。
当通过纠删码算法对数据进行编码时,先将数据分割为大小相同的若干块数据块(可称为原始数据块),并按照顺序对其进行编号,本实施例假设原始数据块的个数为n,n为正整数。工作人员可以根据数据分割得到的块数,设置校验数据块的个数,然后通过预设算法,根据数据分割得到的块数以及设置的校验数据块的个数,生成对应的编码矩阵,本实施例假设校验数据块的个数为m,m为正整数,则上述生成的编码矩阵为(n+m)×n的矩阵,如图2所示的编码矩阵。
将原始数据块按照排列顺序进行排列,形成一个n×1的矩阵。将(n+m)×n的编码矩阵与n×1的矩阵按照预设的编码算法进行计算,可以得到(n+m)×1的矩阵,该矩阵的前n个元素对应的数据块为按照排列顺序排列的原始数据块,后m个元素对应的数据块为生成的校验数据块,如图2所示。生成的(n+m)×1的矩阵可以看作是一个数据块条带,然后按照排列顺序,将数据块条带中的数据块存储在不同磁盘中,每个数据块携带有自身的排列顺序标识,且在内存中存储有数据块条带中所有数据块的排列顺序标识。原始数据块和校验数据块可以统称为数据块。
将数据块条带中的各个数据块存储到磁盘后,如果有至少一个原始数据块发生丢失,则先确定该至少一个已丢失原始数据块所属的数据块条带,将确定出来的数据块条带确定为目标条带。获取该目标条带中的原本生成的校验数据块的个数,将已丢失原始数据块的个数与校验数据块的个数进行比较,如果已丢失原始数据块的个数大于校验数据块的个数,则不能采用纠删码算法对已丢失原始数据块进行数据恢复操作,如果已丢失原始数据块的个数小于或等于校验数据块的个数,则能够采用纠删码算法对已丢失原始数据块进行数据恢复操作。
当通过纠删码算法对已丢失原始数据块数据块进行数据恢复操作时,首先,服务器为即将从磁盘读取出来的未丢失数据块在内存中分配一个存储区域,并为每一个已丢失原始数据块在内存中分配一个存储区域,即根据已丢失原始数据块的个数确定给已丢失数据块分配的存储区域的个数,例如,已丢失原始数据块的个数为3个,则为已丢失原始数据块在内存中分配3个存储区域。其中,数据块可以包括原始数据块和校验数据块,则上述未丢失数据块可以包括未丢失原始数据块和未丢失校验数据块。
然后,查找到目标条带中的未丢失数据块在磁盘中的存储地址,并选取任意一个未丢失数据块,将该未丢失数据块从磁盘中读取到服务器的内存中,根据该未丢失数据块进行数据恢复操作,然后,再一次在未读取的未丢失数据块中选取任意一个未丢失数据块,将该未丢失数据块从磁盘中读取到服务器的内存中,根据该未丢失数据块进行数据恢复操作,然后,再一次在未读取的未丢失数据块中选取任意一个未丢失数据块,重复上述过程,直到将目标条带的未丢失数据块逐个读取到内存为止。根据读取到的未丢失数据块进行数据恢复操作的具体步骤在下文进行说明。
在步骤102中,每将一个未丢失数据块读取到内存时,如果内存中存在目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖其它未丢失数据块。
一个可能的实施例中,通过上述步骤,每将一个未丢失数据块读取到内存时,如果在内存中的为未丢失数据块分配的存储区域中,存在目标条带的其它未丢失数据块,则使用当前读取到的未丢失数据块覆盖存储在存储区域中的其它未丢失数据块。这样,可以无需一次性地将所需的未丢失数据块全部读取到内存中,而是多个未丢失数据块循环使用同一个存储区域,可以减少对内存的占用。当大批次执行对已丢失数据的数据恢复操作时,可以大大减少对内存的占用。
在步骤103中,对于目标条带的每个已丢失原始数据块,获取已丢失原始数据块对应的恢复矩阵,如果内存中不存在已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和恢复矩阵,确定已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、恢复矩阵和内存中存储的已丢失原始数据块的中间恢复数据,确定已丢失原始数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失原始数据块的中间恢复数据。
一个可能的实施例中,下面以目标条带的一个已丢失原始数据块为例进行说明。
获取已丢失原始数据块对应的恢复矩阵,多个已丢失原始数据块对应的恢复矩阵可以是同一个恢复矩阵。获取已丢失原始数据块对应的恢复矩阵的过程可以是,将已丢失原始数据块的个数与目标条带原本生成的校验数据块的个数进行比较,如果已丢失原始数据块的个数小于校验数据块的个数,则根据已丢失原始数据块的个数与校验数据块的个数的差值,在内存中存储的校验数据块的排列顺序标识中,随机选取数目为上述差值的排列顺序标识,并确定已丢失原始数据块在目标条带中的排列顺序标识。例如,目标条带中的校验数据块的个数是5个,已丢失原始数据块的个数是3个,则在内存中存储的校验数据块的排列顺序标识中,随机选取2个排列顺序标识。
如果已丢失原始数据块的个数等于校验数据块的个数,则直接确定已丢失原始数据块在目标条带中的排列顺序标识。
获取预先存储的编码矩阵,根据确定出的排列顺序标识,在编码矩阵中删除排列顺序标识对应的行数据,得到删除后的编码矩阵,计算删除后的编码矩阵的逆矩阵,计算得到的逆矩阵即为已丢失原始数据块对应的恢复矩阵。
例如,如图3所示,编码矩阵为8×5的矩阵,D1、D4为已丢失原始数据块的排列顺序标识,C1为选取出的校验数据块的排列顺序标识,在编码矩阵中确定这三个排列顺序标识对应的行数据,即为第1行、第4行以及第6行数据,删除这三行数据,得到5×5的删除后的编码矩阵。计算删除后的编码矩阵的逆矩阵,将5×5的逆矩阵确定为已丢失原始数据块对应的恢复矩阵。
获取到恢复矩阵后,判断内存中为该已丢失原始数据块分配的存储区域中,是否存储有该已丢失原始数据块的中间恢复数据。如果没有,则将当前读取到内存中的未丢失数据块和恢复矩阵按照预设算法进行运算,得到已丢失原始数据块的中间恢复数据,将该中间恢复数据存储到为该已丢失原始数据块分配的内存中的存储区域。
如果内存中存储有该已丢失原始数据块的中间恢复数据,则将当前读取到内存中的未丢失数据块、恢复矩阵以及已存储的中间恢复数据按照预设算法进行运算,得到已丢失原始数据块的更新的中间恢复数据,将更新的中间恢复数据存储到为该已丢失原始数据块分配的内存中的存储区域中。
优选地,上述预设算法可以是矩阵的乘法运算,如图4所示,通过已丢失原始数据块的恢复矩阵与未丢失数据块形成的矩阵进行矩阵相乘,可以得到原始数据块对应的矩阵,通过矩阵相乘得到原始数据块的方法在目前的技术中已经使用,相应的实现原理本发明不做赘述。
以图4为例,已丢失原始数据块为D1和D4,以D1进行例举说明,根据矩阵的乘法运算可知,D1的计算公式可以如下述公式:
D1=A1*D2⊕A2*D3⊕A3*D5⊕A4*C2⊕A5*C3
由上述计算公式可以得知,D1的计算公式是由多个数据项进行异或运算得到的,每个数据项是由未丢失数据块与恢复矩阵中的元素进行矩阵相乘得到的,由于异或运算满足交换律,则根据上述公式可以得知,异或运算符号连接的多个数据项可以交换先后顺序,利用这个性质,我们可以实现本发明的方案。
当一个原始数据块发生丢失时,假设该已丢失原始数据块为D1,服务器在磁盘中随机选取一个未丢失数据块,假设第一次获取的未丢失数据块为D2,则将选取的D2读取到内存中为未丢失数据块分配的存储区域中,并获取已丢失原始数据块对应的恢复矩阵。根据上述已丢失原始数据块的计算公式,可以计算读取的未丢失数据块与恢复矩阵中的元素A1的计算结果,即得到“A1*D2”这个数据项,然后,判断内存中为该已丢失原始数据块分配的存储区域中是否存储有中间恢复数据,得到的结果是没有存储中间恢复数据,则将该数据项确定为已丢失原始数据块的中间恢复数据,将该中间恢复数据存储在内存中为该已丢失原始数据块分配的存储区域中。然后,再一次在磁盘中随机选取一个未读取的未丢失数据块,假设第二次获取的未丢失数据块为C2,则将选取的读取到内存中的为未丢失数据块分配的存储区域中,由于内存中为未丢失数据块分配的存储区域中已经存储有第一次读取的未丢失数据块,使用当前读取的C2覆盖掉已存储在内存中的D2。
然后,根据D1的计算公式可知,根据C2与恢复矩阵中的元素A4计算“A4*C2”这个数据项,然后,判断内存中为该已丢失原始数据块分配的存储区域中是否存储有中间恢复数据,得到的结果是存储有中间恢复数据,则将计算得到的数据项与内存中存储的中间恢复数据进行异或运算,将异或运算得到的结果确定为更新的中间恢复数据,然后使用更新的中间恢复数据,覆盖内存中为该已丢失原始数据块分配的存储区域中存储的中间恢复数据。
然后,再一次在磁盘中随机选取一个未读取的未丢失数据块,重复上述的处理步骤,无需将所需的多个未丢失数据块一次性地读取到内存中,而是多个未丢失数据块循环使用内存中的同一个存储区域,就可以对已丢失原始数据块逐步进行数据恢复操作,减少了数据恢复操作过程中对服务器内存的占用。
在步骤104中,当目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
一个可能的实施例中,重复上述步骤103的操作,直到检测到目标条带中不存在未读取的未丢失数据块,即,已经将目标条带中的所有未丢失数据块都读取一遍后,上述循环操作过程结束,服务器将存储在内存中的为该已丢失原始数据块分配的存储区域中的更新的中间恢复数据,确定为该已丢失原始数据块的输出恢复数据,至此,完成了对该已丢失原始数据块的数据恢复操作。
需要说明的是,上述处理过程以一个已丢失原始数据块的数据恢复过程为例,其它已丢失原始数据块的恢复过程与上述处理步骤相同,可以参照上述步骤进行处理。当已丢失原始数据块的个数为两个或两个以上时,为了节省恢复数据过程的处理时间,提高处理效率,可以对两个或两个以上的已丢失原始数据块进行并行处理,即,当读取一个未丢失数据块到内存后,并行计算每个已丢失原始数据块的中间恢复数据,当计算完成所有的已丢失原始数据块的中间恢复数据后,再读取下一个未丢失数据块到内存中,相应的处理过程可参照上述处理过程,此处不再赘述。
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
本发明实施例提供了一种确定已丢失数据块的恢复数据的方法,该方法应用的场景为同一条带中的已丢失数据块均为校验数据块的情况,如图5所示,该方法的处理流程可以包括如下的步骤:
在步骤501中,当目标条带存在数据块丢失时,将目标条带的未丢失原始数据块逐个读取到内存。
一个可能的实施例中,当判断目标条带中发生丢失的数据块均为校验数据块时,首先,服务器为即将从磁盘读取出来的未丢失原始数据块在内存中分配一个存储区域,并为每一个已丢失校验数据块在内存中分配一个存储区域,即根据已丢失校验数据块的个数确定给已丢失数据块分配的存储区域的个数,例如,已丢失校验数据块的个数为3个,则为已丢失校验数据块在内存中分配3个存储区域。
然后,查找到目标条带中的未丢失原始数据块的在磁盘中的存储地址,并选取任意一个未丢失原始数据块,将该未丢失原始数据块从磁盘中读取到服务器的内存中,根据该未丢失原始数据块进行数据恢复操作,然后,再一次在未读取的未丢失原始数据块中选取任意一个未丢失数据块,将该未丢失原始数据块从磁盘中读取到服务器的内存中,根据该未丢失原始数据块进行数据恢复操作,然后,再一次在未读取的未丢失原始数据块中选取任意一个未丢失原始数据块,重复上述过程,直到将目标条带的未丢失原始数据块逐个读取到内存为止。根据读取到的未丢失原始数据块进行数据恢复操作的具体步骤在下文进行说明。
在步骤502中,每将一个未丢失原始数据块读取到内存时,如果内存中存在目标条带的其它未丢失原始数据块,则使用当前读取到内存的未丢失原始数据块,覆盖其它未丢失原始数据块。
一个可能的实施例中,通过上述步骤,每将一个未丢失原始数据块读取到内存时,如果在内存中的为未丢失原始数据块分配的存储区域中,存在目标条带的其它未丢失原始数据块,则使用当前读取到的未丢失原始数据块覆盖存储在存储区域中的其它未丢失原始数据块。这样,可以无需一次性地将所需的未丢失原始数据块全部读取到内存中,而是多个未丢失原始数据块循环使用同一个存储区域,可以减少对内存的占用。当大批次执行对已丢失数据的数据恢复操作时,可以大大减少对内存的占用。
在步骤503中,对于目标条带的每个已丢失校验数据块,获取已丢失校验数据块对应的恢复矩阵,如果内存中不存在已丢失校验数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和恢复矩阵,确定已丢失校验数据块的中间恢复数据存储在内存中,如果内存中存在已丢失校验数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、恢复矩阵和内存中存储的已丢失校验数据块的中间恢复数据,确定已丢失校验数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失校验数据块的中间恢复数据。
一个可能的实施例中,下面以目标条带的一个已丢失校验数据块为例进行说明。
获取已丢失校验数据块对应的恢复矩阵,已丢失校验数据块的恢复矩阵即为预先存储的、编码过程中使用的编码矩阵,多个已丢失校验数据块对应的恢复矩阵可以是同一个恢复矩阵。
获取到恢复矩阵后,判断内存中为该已丢失校验数据块分配的存储区域中,是否存储有该已丢失校验数据块的中间恢复数据。如果没有,则将当前读取到内存中的未丢失原始数据块和恢复矩阵按照预设算法进行运算,得到已丢失校验数据块的中间恢复数据,将该中间恢复数据存储到内存中为该已丢失校验数据块分配的存储区域。
如果内存中存储有该已丢失校验数据块的中间恢复数据,则将当前读取到内存中的未丢失原始数据块、恢复矩阵以及已存储的中间恢复数据按照预设算法进行运算,得到已丢失校验数据块的更新的中间恢复数据,将更新的中间恢复数据存储到为该已丢失校验数据块分配的内存中的存储区域中。
需要说明的是,这种情况中使用的预设算法与上述“同一条带中的已丢失数据块均为原始数据块”的情况使用的预设算法为同一种算法。优选地,该预设算法可以是矩阵的乘法运算,其实现原理与根据编码矩阵对原始数据块进行编码得到校验数据块的原理相同,此处不做赘述。相应的处理步骤可以参见上述处理步骤103,此处不做赘述。
在步骤504中,当目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
一个可能的实施例中,重复上述步骤503的操作,直到检测到目标条带中不存在未读取的未丢失原始数据块,即,已经将目标条带中的所有未丢失原始数据块都读取一遍后,上述循环操作过程结束,服务器将存储在内存中的为该已丢失校验数据块分配的存储区域中的更新的中间恢复数据,确定为该已丢失校验数据块的输出恢复数据,至此,完成了对该已丢失校验数据块的数据恢复操作。
需要说明的是,上述处理过程以一个已丢失校验数据块的数据恢复过程为例,其它已丢失校验数据块的恢复过程与上述处理步骤相同,可以参照上述步骤进行处理。当已丢失校验数据块的个数为两个或两个以上时,为了节省恢复数据过程的处理时间,提高处理效率,可以对两个或两个以上的已丢失校验数据块进行并行处理,即,当读取一个未丢失原始数据块到内存后,并行计算每个已丢失校验数据块的中间恢复数据,当计算完成所有的已丢失校验数据块的中间恢复数据后,再读取下一个未丢失原始数据块到内存中,相应的处理过程可参照上述处理过程,此处不再赘述。
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
本发明实施例提供了一种确定已丢失数据块的恢复数据的方法,该方法应用的场景为同一条带中的已丢失数据块包括原始数据块和校验数据块的情况,如图6所示,该方法的处理流程可以包括如下的步骤:
在步骤601中,当目标条带存在数据块丢失时,将目标条带的未丢失数据块逐个读取到内存。
其中,数据块包括原始数据块以及校验数据块,目标条带的已丢失数据块既包括原始数据块,又包括校验数据块。
一个可能的实施例中,当判断目标条带中发生丢失的数据块既包括原始数据块又包括校验数据块时,首先,服务器为即将从磁盘读取出来的未丢失数据块在内存中分配一个存储区域,并为每一个已丢失数据块在内存中分配一个存储区域,即根据已丢失数据块的个数确定给已丢失数据块分配的存储区域的个数,例如,已丢失校验数据块的个数为1个,已丢失原始数据块的个数为2个,则一共为已丢失数据块在内存中分配3个存储区域。
然后,查找到目标条带中的未丢失数据块的在磁盘中的存储地址,并选取任意一个未丢失数据块,将该未丢失数据块从磁盘中读取到服务器的内存中,根据该未丢失数据块进行数据恢复操作,然后,再一次在未读取的未丢失数据块中选取任意一个未丢失数据块,将该未丢失数据块从磁盘中读取到服务器的内存中,根据该未丢失数据块进行数据恢复操作,然后,再一次在未读取的未丢失数据块中选取任意一个未丢失数据块,重复上述过程,直到将目标条带的未丢失数据块逐个读取到内存为止。根据读取到的未丢失数据块进行数据恢复操作的具体步骤在下文进行说明。
在步骤602中,每将一个未丢失数据块读取到内存时,如果内存中存在目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖其它未丢失数据块。
一个可能的实施例中,通过上述步骤,每将一个未丢失数据块读取到内存时,如果在内存中的为未丢失数据块分配的存储区域中,存在目标条带的其它未丢失数据块,则使用当前读取到的未丢失数据块覆盖存储在存储区域中的其它未丢失数据块。这样,可以无需一次性地将所需的未丢失数据块全部读取到内存中,而是多个未丢失数据块循环使用同一个存储区域,可以减少对内存的占用。当大批次执行对已丢失数据的数据恢复操作时,可以大大减少对内存的占用。
在步骤603中,如果当前读取到内存的未丢失数据块是原始数据块,对于目标条带的每个已丢失数据块,获取已丢失数据块对应的恢复矩阵,如果内存中不存在已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和已丢失数据块对应的恢复矩阵,确定已丢失数据块的中间恢复数据存储在内存中,如果内存中存在已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、已丢失数据块对应的恢复矩阵和内存中存储的已丢失数据块的中间恢复数据,确定已丢失数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失数据块的中间恢复数据。
一个可能的实施例中,在对已丢失原始数据块以及校验数据块进行数据恢复时,由上述两种情况可知,对已丢失原始数据块的数据恢复需要用到未丢失原始数据块和未丢失校验数据块,对已丢失校验数据块的数据恢复需要用到未丢失原始数据块,不需要用到未丢失校验数据块。也即,当服务器从磁盘中读取的未丢失数据块为未丢失原始数据块时,对已丢失校验数据块的数据恢复处理与对已丢失原始数据块的数据恢复处理可以并行执行,当服务器从磁盘中读取的未丢失数据块为未丢失校验数据块,则只需要执行对已丢失原始数据块的数据恢复处理,不执行对已丢失校验数据块的数据恢复处理。
如果当前读取到内存的未丢失数据块是原始数据块,下面以目标条带的一个已丢失数据块为例进行说明。需要说明的是,该已丢失数据块可以是已丢失原始数据块,也可以是已丢失校验数据块。
首先,获取已丢失数据块对应的恢复矩阵。获取已丢失原始数据块对应的恢复矩阵的方法,与获取已丢失校验数据块对应的恢复矩阵的方法不相同,获取已丢失原始数据块对应的恢复矩阵的方法可以参照上述步骤103中的处理步骤,获取已丢失校验数据块对应的恢复矩阵的方法可以参照上述步骤503中的处理步骤,在此不做赘述。
获取到已丢失数据块对应的恢复矩阵后,判断内存中为该已丢失数据块分配的存储区域中,是否存储有该已丢失数据块的中间恢复数据。如果没有,则将当前读取到内存中的未丢失原始数据块和恢复矩阵按照预设算法进行运算,得到已丢失数据块的中间恢复数据,将该中间恢复数据存储到内存中为该已丢失数据块分配的存储区域。
如果内存中存储有该已丢失数据块的中间恢复数据,则将当前读取到内存中的未丢失原始数据块、恢复矩阵以及已存储的中间恢复数据按照预设算法进行运算,得到已丢失数据块的更新的中间恢复数据,将更新的中间恢复数据存储到为该已丢失数据块分配的内存中的存储区域中。
需要说明的是,这种情况中使用的预设算法与上述“同一条带中的已丢失数据块均为原始数据块”以及上述“同一条带中的已丢失数据块均为校验数据块”的情况使用的预设算法为同一种算法,相应的处理步骤可以参见上述处理步骤103,此处不做赘述。
在步骤604中,如果当前读取到内存的未丢失数据块是校验数据块,对于目标条带的每个已丢失原始数据块,获取已丢失原始数据块对应的恢复矩阵,如果内存中不存在已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和已丢失原始数据块对应的恢复矩阵,确定已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、已丢失原始数据块对应的恢复矩阵和内存中存储的已丢失原始数据块的中间恢复数据,确定已丢失原始数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失原始数据块的中间恢复数据。
一个可能的实施例中,如果当前读取到内存的未丢失数据块是校验数据块,则不执行对已丢失校验数据块的数据恢复处理,仅执行对已丢失原始数据块的数据恢复处理,相应的处理步骤与上述步骤603大致相同,可以参照上述步骤603进行处理,此处不做赘述。
在步骤605中,当目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据。
一个可能的实施例中,重复执行上述步骤的操作,直到检测到目标条带中不存在未读取的未丢失数据块时,也即,将磁盘中目标条带的所有未丢失数据块都读取一遍后,停止执行上述循环操作,将内存中为每个已丢失原始数据块分配的存储区域中存储的更新的中间恢复数据,确定为该已丢失原始数据块的输出恢复数据。至此,完成对已丢失原始数据块的数据恢复处理。
在步骤606中,基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
一个可能的实施例中,由于对已丢失校验数据块的数据恢复处理需要用到目标条带中的所有原始数据块,包括未丢失原始数据块和已丢失原始数据块,因此,在完成对已丢失原始数据块的数据恢复处理后,根据每个已丢失原始数据块的输出恢复数据,以及内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据,对已丢失校验数据块进行数据恢复处理。
可选地,确定每个已丢失校验数据块的输出恢复数据的处理步骤可以如下:逐个读取确定出的已丢失原始数据块的输出恢复数据;每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、已丢失校验数据块对应的恢复矩阵和内存中存储的已丢失校验数据块的中间恢复数据,确定已丢失校验数据块的更新的中间恢复数据,使用更新的中间恢复数据替换内存中存储的已丢失校验数据块的中间恢复数据;当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
一个可能的实施例中,通过上述步骤完成对已丢失原始数据块的数据恢复处理后,保持已丢失原始数据块的输出恢复数据存储在内存中,使得根据已丢失原始数据块的输出恢复数据,对已丢失校验数据块的数据恢复处理时,读取这些输出恢复数据更加方便。
然后,随机读取一个已丢失原始数据块的输出恢复数据,以一个已丢失校验数据块为例,根据读取的已丢失原始数据块的输出恢复数据、已丢失校验数据块对应的恢复矩阵和内存中存储的已丢失校验数据块的中间恢复数据,采用预设算法,确定已丢失校验数据块的更新的中间恢复数据,然后,使用确定出的更新的中间恢复数据,替换存储在内存中的为该已丢失校验数据块分配的存储区域中的中间恢复数据。
然后,再一次随机读取一个未读取的已丢失原始数据块的输出恢复数据,重复上述处理过程,确定更新的中间恢复数据后,使用确定出的更新的中间恢复数据替换已经存储在内存中的中间恢复数据。重复上述处理过程,直到服务器检测到不存在未读取的已丢失原始数据块的输出恢复数据时,说明已经将所有已丢失原始数据块的输出恢复数据都读取了一遍,也就是说,对于每个已丢失校验数据块,已经根据全部原始数据块与恢复矩阵进行运算,因此,最后得到的更新的中间恢复数据即为该已丢失校验数据块的输出恢复数据。至此,完成对已丢失校验数据块的数据恢复处理。
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
基于相同的技术构思,本发明实施例还提供了一种确定已丢失数据块的恢复数据的装置,该装置可以为上述实施例中的服务器,如图7所示,该装置包括:读取模块710,覆盖模块720、和确定模块730。
该读取模块710,被配置为当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
该覆盖模块720,被配置为每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
该确定模块730,被配置为对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
该确定模块730,还被配置为当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
可选地,所述数据块包括原始数据块以及校验数据块。
可选地,所述目标条带的已丢失数据块均为校验数据块,所述读取模块710,还被配置为:将所述目标条带的未丢失原始数据块逐个读取到内存;
所述确定模块730,被配置为:当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
可选地,所述目标条带的已丢失数据块包括原始数据块和校验数据块;
所述确定模块730,还被配置为:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
可选地,所述确定模块730,还被配置为:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
可选地,所述确定模块730,还被配置为:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的确定已丢失数据块的恢复数据的装置在确定已丢失数据块的恢复数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的确定已丢失数据块的恢复数据的装置与确定已丢失数据块的恢复数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)801和一个或一个以上的存储器802,其中,所述存储器802中存储有至少一条指令,所述至少一条指令由所述处理器801加载并执行以实现下述确定已丢失数据块的恢复数据的方法步骤:
当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
可选的,所述至少一条指令由所述处理器801加载并执行以实现下述方法步骤:
将所述目标条带的未丢失原始数据块逐个读取到内存;
当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
可选的,所述至少一条指令由所述处理器801加载并执行以实现下述方法步骤:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
可选的,所述至少一条指令由所述处理器801加载并执行以实现下述方法步骤:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
可选的,所述至少一条指令由所述处理器801加载并执行以实现下述方法步骤:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
本发明实施例中,在通过纠删码算法对已丢失数据块进行数据恢复处理的过程中,循环读取未丢失数据块到内存中,这样,多个未丢失数据块循环占用内存的同一块存储区域,避免一次性将多个未丢失数据块同时读取到内存中而占用过多内存,当同时对大批量的已丢失数据进行数据恢复处理时,可以减少对服务器内存的占用。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种确定已丢失数据块的恢复数据的方法,其特征在于,所述方法包括:
当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据,在所述已丢失数据块为原始数据块的情况下,对应的恢复矩阵为目标矩阵的逆矩阵,所述目标矩阵为编码过程中使用的编码矩阵中删除目标排列顺序标识对应的行数据得到的矩阵,在已丢失原始数据块的个数小于校验数据块的个数的情况下,所述目标排列顺序标识包括目标数目的排列顺序标识和所述已丢失原始数据块的排列顺序标识,所述目标数目的排列顺序标识属于所述校验数据块的排列顺序标识,所述目标数目通过所述已丢失原始数据块的个数与所述校验数据块的个数确定,在所述已丢失原始数据块的个数等于校验数据块的个数的情况下,所述目标排列顺序标识包括所述已丢失原始数据块的排列顺序标识;在所述已丢失数据块为校验数据块的情况下,对应的恢复矩阵为编码过程中使用的编码矩阵;
当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
2.根据权利要求1所述的方法,其特征在于,所述数据块包括原始数据块以及校验数据块。
3.根据权利要求2所述的方法,其特征在于,所述目标条带的已丢失数据块均为校验数据块,所述将所述目标条带的未丢失数据块逐个读取到内存,包括:将所述目标条带的未丢失原始数据块逐个读取到内存;
所述当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据,包括:当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
4.根据权利要求2所述的方法,其特征在于,所述目标条带的已丢失数据块包括原始数据块和校验数据块;
所述对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据,包括:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
5.根据权利要求4所述的方法,其特征在于,所述当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据,包括:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
6.根据权利要求5所述的方法,其特征在于,所述基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据,包括:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
7.一种确定已丢失数据块的恢复数据的装置,其特征在于,所述装置包括:
读取模块,用于当目标条带存在数据块丢失时,将所述目标条带的未丢失数据块逐个读取到内存;
覆盖模块,用于每将一个未丢失数据块读取到内存时,如果内存中存在所述目标条带的其它未丢失数据块,则使用当前读取到内存的未丢失数据块,覆盖所述其它未丢失数据块;
确定模块,用于对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块和所述恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失数据块、所述恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据,在所述已丢失数据块为原始数据块的情况下,对应的恢复矩阵为目标矩阵的逆矩阵,所述目标矩阵为编码过程中使用的编码矩阵中删除目标排列顺序标识对应的行数据得到的矩阵,在已丢失原始数据块的个数小于校验数据块的个数的情况下,所述目标排列顺序标识包括目标数目的排列顺序标识和所述已丢失原始数据块的排列顺序标识,所述目标数目的排列顺序标识属于所述校验数据块的排列顺序标识,所述目标数目通过所述已丢失原始数据块的个数与所述校验数据块的个数确定,在所述已丢失原始数据块的个数等于校验数据块的个数的情况下,所述目标排列顺序标识包括所述已丢失原始数据块的排列顺序标识;在所述已丢失数据块为校验数据块的情况下,对应的恢复矩阵为编码过程中使用的编码矩阵;
确定模块,还用于当所述目标条带不存在未读取的未丢失数据块时,根据最终确定的每个已丢失数据块的更新的中间恢复数据,确定每个已丢失数据块的输出恢复数据。
8.根据权利要求7所述的装置,其特征在于,所述数据块包括原始数据块以及校验数据块。
9.根据权利要求8所述的装置,其特征在于,所述目标条带的已丢失数据块均为校验数据块,所述读取模块,还用于:将所述目标条带的未丢失原始数据块逐个读取到内存;
所述确定模块,用于:当所述目标条带不存在未读取的未丢失原始数据块时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
10.根据权利要求8所述的装置,其特征在于,所述目标条带的已丢失数据块包括原始数据块和校验数据块;
所述确定模块,还用于:
如果当前读取到内存的未丢失数据块是原始数据块,对于所述目标条带的每个已丢失数据块,获取所述已丢失数据块对应的恢复矩阵,如果内存中不存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块和所述已丢失数据块对应的恢复矩阵,确定所述已丢失数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失数据块的中间恢复数据,则基于当前读取到内存的未丢失原始数据块、所述已丢失数据块对应的恢复矩阵和内存中存储的所述已丢失数据块的中间恢复数据,确定所述已丢失数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失数据块的中间恢复数据;
如果当前读取到内存的未丢失数据块是校验数据块,对于所述目标条带的每个已丢失原始数据块,获取所述已丢失原始数据块对应的恢复矩阵,如果内存中不存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块和所述已丢失原始数据块对应的恢复矩阵,确定所述已丢失原始数据块的中间恢复数据存储在内存中,如果内存中存在所述已丢失原始数据块的中间恢复数据,则基于当前读取到内存的未丢失校验数据块、所述已丢失原始数据块对应的恢复矩阵和内存中存储的所述已丢失原始数据块的中间恢复数据,确定所述已丢失原始数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失原始数据块的中间恢复数据。
11.根据权利要求10所述的装置,其特征在于,所述确定模块,还用于:
当所述目标条带不存在未读取的未丢失数据块时,将最终确定的每个已丢失原始数据块的更新的中间恢复数据,确定为每个已丢失原始数据块的输出恢复数据;
基于每个已丢失原始数据块的输出恢复数据、内存中存储的每个已丢失校验数据块的更新的中间恢复数据、和已丢失校验数据块对应的恢复矩阵,确定每个已丢失校验数据块的输出恢复数据。
12.根据权利要求11所述的装置,其特征在于,所述确定模块,还用于:
逐个读取确定出的已丢失原始数据块的输出恢复数据;
每读取一个已丢失原始数据块的输出恢复数据时,对于每个已丢失校验数据块,基于读取的已丢失原始数据块的输出恢复数据、所述已丢失校验数据块对应的恢复矩阵和内存中存储的所述已丢失校验数据块的中间恢复数据,确定所述已丢失校验数据块的更新的中间恢复数据,使用所述更新的中间恢复数据替换内存中存储的所述已丢失校验数据块的中间恢复数据;
当不存在未读取的已丢失原始数据块的输出恢复数据时,将最终确定的每个已丢失校验数据块的更新的中间恢复数据,确定为每个已丢失校验数据块的输出恢复数据。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至6任一所述的确定已丢失数据块的恢复数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811143456.8A CN110968454B (zh) | 2018-09-28 | 2018-09-28 | 确定已丢失数据块的恢复数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811143456.8A CN110968454B (zh) | 2018-09-28 | 2018-09-28 | 确定已丢失数据块的恢复数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968454A CN110968454A (zh) | 2020-04-07 |
CN110968454B true CN110968454B (zh) | 2022-09-09 |
Family
ID=70027356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811143456.8A Active CN110968454B (zh) | 2018-09-28 | 2018-09-28 | 确定已丢失数据块的恢复数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968454B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761171A (zh) * | 2014-02-11 | 2014-04-30 | 中国科学院成都生物研究所 | 一种针对二进制编码冗余存储系统的低带宽数据重构方法 |
CN104156283A (zh) * | 2014-08-27 | 2014-11-19 | 华为技术有限公司 | 数据恢复方法、装置及存储系统 |
CN106100801A (zh) * | 2016-08-29 | 2016-11-09 | 湖南大学 | 一种云存储系统的非均匀纠删编码方法 |
CN106844098A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740198B2 (en) * | 2016-12-22 | 2020-08-11 | Purdue Research Foundation | Parallel partial repair of storage |
-
2018
- 2018-09-28 CN CN201811143456.8A patent/CN110968454B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761171A (zh) * | 2014-02-11 | 2014-04-30 | 中国科学院成都生物研究所 | 一种针对二进制编码冗余存储系统的低带宽数据重构方法 |
CN104156283A (zh) * | 2014-08-27 | 2014-11-19 | 华为技术有限公司 | 数据恢复方法、装置及存储系统 |
CN106100801A (zh) * | 2016-08-29 | 2016-11-09 | 湖南大学 | 一种云存储系统的非均匀纠删编码方法 |
CN106844098A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
Non-Patent Citations (2)
Title |
---|
分布式存储中的纠删码容错技术研究;王意洁,许方亮,裴晓强;《计算机学报》;20170131;235-252 * |
纠删码存储系统的磁盘错误重构优化方法综述;傅颖勋,文士林,马礼,舒继武;《计算机研究与发展》;科学出版社;20180131;1-11 * |
Also Published As
Publication number | Publication date |
---|---|
CN110968454A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597571B (zh) | 数据存储方法、数据读取方法、装置和计算机设备 | |
WO2017095435A1 (en) | Combining hashes of data blocks | |
CN111858651A (zh) | 一种数据处理方法以及数据处理装置 | |
CN108920540B (zh) | 一种基于Spark的并行栅格数据处理方法 | |
CN110750793A (zh) | 一种漏洞扫描方法及装置 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN111651137A (zh) | 排序方法、装置、电子装置以及计算机设备 | |
CN109859314B (zh) | 三维重建方法、装置、电子设备和存储介质 | |
CN113821373A (zh) | 提高磁盘地址转换速度的方法、系统、设备和存储介质 | |
CN113936082A (zh) | 点云数据渲染方法、装置、设备及存储介质 | |
CN116959540B (zh) | 具有写掩码的数据校验系统 | |
CN113360911A (zh) | 恶意代码同源分析方法、装置、计算机设备和存储介质 | |
CN110968454B (zh) | 确定已丢失数据块的恢复数据的方法和装置 | |
CN113257352A (zh) | 一种基因测序数据排序方法、集成电路及排序设备 | |
CN112486848A (zh) | 一种测试数据的生成方法、装置、芯片及存储介质 | |
CN110866127A (zh) | 建立索引的方法以及相关装置 | |
CN115619964A (zh) | 数据处理的方法和装置 | |
CN116741255B (zh) | 生成目标组合存储器的系统 | |
CN115994244B (zh) | 基于大数据的有向图数据处理方法、装置、计算机设备 | |
CN112579591A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN116681767B (zh) | 一种点云搜索方法、装置及终端设备 | |
CN113411395B (zh) | 访问请求路由方法、装置、计算机设备和存储介质 | |
CN115081233B (zh) | 一种流程仿真方法及电子设备 | |
CN113485944B (zh) | 一种软件测试方法及系统 | |
CN116701419A (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 |