发明内容
有鉴于此,本发明提供一种分布式存储进行快照的方法及相关装置,以在不阻塞写请求的前提下对分布式存储进行快照,方案如下:
一种分布式存储进行快照的方法,所述方法包括:
在第一时刻开始对分布式存储的至少部分副本进行快照处理;
在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述至少部分副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求。
可选的,还包括:
为所述第一请求组中各请求及所述第二请求组中各请求添加预设标记;
所述当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,包括:
当所有添加有预设标记的各请求均已成功处理时,将所述待确认快照确定为可用快照。
可选的,所述为所述第一请求组中各请求及所述第二请求组中各请求添加预设标记,包括:
为在第三时刻至第四时刻之间接收到的对所述至少部分副本的写请求添加预设标记,为在所述第三时刻处于处理中的对所述至少部分副本的写请求添加预设标记,其中,所述第三时刻早于所述第一时刻,所述第四时刻晚于所述第二时刻。
可选的,所述当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,包括:
当在所述第一时刻后的预设时长内,第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照。
可选的,所述方法还包括:
当在所述第一时刻后的预设时长内,第一请求组中至少一个请求或第二请求组中至少一个请求未成功处理时,将所述待确认快照确定为不可用快照。
可选的,还包括:
确定需进行一致性处理的第一文件的目标副本;
确定所述目标副本与所述第一文件的除所述目标副本外的其他副本的、最新的一致性快照,所述一致性快照至少包括:所述目标副本的第一可用快照和所述可用副本的第二可用快照,所述可用副本为所述其他副本中的一个副本,所述第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配;
将所述目标副本的最新数据与所述第一可用快照进行对比,确定第一差异数据块组;
将所述第一可用副本的最新数据与所述第二可用快照进行对比,确定第二差异数据块组;
将所述第一差异数据块组与所述第二差异数据块组的并集确定为第三差异数据块组;
将所述第一可用副本的最新数据中的、所述第三差异数据块组中各数据块的数据覆盖所述目标副本的最新数据中的、所述第三差异数据块组中各数据块的数据。
一种分布式存储进行快照的装置,所述装置包括:快照单元、快照获得单元和第一快照确定单元,
所述快照单元,用于在第一时刻开始对分布式存储的至少部分副本进行快照处理;
所述快照获得单元,用于在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
所述第一快照确定单元,用于当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述至少部分副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求。
可选的,还包括:目标副本确定单元、一致性快照确定单元、第一数据块确定单元、第二数据块确定单元、第三数据块确定单元和覆盖单元,
所述目标副本确定单元,用于确定需进行一致性处理的第一文件的目标副本;
所述一致性快照确定单元,用于确定所述目标副本与所述第一文件的除所述目标副本外的其他副本的、最新的一致性快照,所述一致性快照至少包括:所述目标副本的第一可用快照和所述可用副本的第二可用快照,所述可用副本为所述其他副本中的一个副本,所述第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配;
所述第一数据块确定单元,用于将所述目标副本的最新数据与所述第一可用快照进行对比,确定第一差异数据块组;
所述第二数据块确定单元,用于将所述第一可用副本的最新数据与所述第二可用快照进行对比,确定第二差异数据块组;
所述第三数据块确定单元,用于将所述第一差异数据块组与所述第二差异数据块组的并集确定为第三差异数据块组;
所述覆盖单元,用于将所述第一可用副本的最新数据中的、所述第三差异数据块组中各数据块的数据覆盖所述目标副本的最新数据中的、所述第三差异数据块组中各数据块的数据。
一种存储介质,其上存储有程序,所述程序被处理器执行时实现上述的任一种分布式存储进行快照的方法。
一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的任一种分布式存储进行快照的方法。
本发明实施例提供了一种分布式存储进行快照的方法及相关装置,在第一时刻开始对分布式存储的至少部分副本进行快照处理;在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述至少部分副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求。可见,本发明进行快照处理时并未堵塞写请求,同时,本发明通过监控快照开始时处于处理中的写请求以及进行快照处理过程中接收到的写请求,来保证副本的一致性,避免了由于未堵塞写请求带来的副本不一致的问题。
具体实施方式
本发明公开了一种分布式存储进行快照的方法及相关装置,本领域技术人员可以借鉴本文内容,适当改进工艺参数实现。特别需要指出的是,所有类似的替换和改动对本领域技术人员来说是显而易见的,它们都被视为包括在本发明。本发明的方法及应用已经通过较佳实施例进行了描述,相关人员明显能在不脱离本发明内容、精神和范围内对本文所述的方法和应用进行改动或适当变更与组合,来实现和应用本发明技术。
如图1所示,本发明实施例提供的一种分布式存储进行快照的方法,可以包括:
S100、在第一时刻开始对分布式存储的至少部分副本进行快照处理;
可选的,本发明可以对一个文件的各副本进行快照处理,每次快照处理仅针对一个文件的各副本。当然,本发明每次快照处理也可以针对所有文件的各副本。本发明在此不做限定。
本发明实施例可以定期或不定期的对分布式存储的各副本进行快照处理。例如:每隔10秒对某文件的各副本进行一次快照处理,或某文件的数据量每增长预设数据量(如500MB)则对该文件的各副本进行一次快照处理。
可以理解的是,快照处理不会瞬间完成,需要花费一定的时间,如本实施例中第一时刻至第二时刻。
上述各副本可以位于相同或不同的设备中,上述各副本可以是同一文件或不同文件的副本。
S200、在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
S300、当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述副本的写请求。
其中,写请求可以分为三种,分别为:在第二时刻之前已成功处理的写请求,在第二时刻之后成功处理的写请求和丢失的写请求,其中,丢失的写请求可能是由于故障等原因而丢失。对于在第二时刻之前已成功处理的写请求,该写请求所请求写入的数据已在第二时刻之前成功写入副本中,则对副本进行快照处理后获得的快照中将带有该写请求所请求写入的数据。这种情况下,由于副本的最新数据和该快照中都带有该写请求所请求写入的数据,因此通过对比该快照和副本的最新数据无法确定该写请求所改变是哪些数据块。相应的,对于在在第二时刻之后成功处理的写请求,由于该写请求写入的数据未存储在从第二时刻开始对副本进行快照处理后获得的快照中,而副本的最新数据带有该写请求所请求写入的数据,因此通过对比该快照和副本的最新数据可以确定该写请求所改变是哪些数据块。而对于丢失的写请求,由于写请求已经丢失,因此也并未根据该写请求进行数据写入,快照和副本的最新数据中都不带有该丢失的写请求所请求写入的数据。
可以理解的是,对于分布式存储而言,某文件的各个副本中的最新数据需要保持一致,当某个副本中的最新数据与其他副本中的最新数据不一致时,需要进行一致化处理。本发明可以通过快照来进行上述的一致化处理。
为方便理解,下面通过表1进行说明:
表1
文件A的副本1 |
之前 |
之后 |
丢失 |
之前 |
之后 |
丢失 |
之前 |
之后 |
丢失 |
文件A的副本2 |
之前 |
之前 |
之前 |
之后 |
之后 |
之后 |
丢失 |
丢失 |
丢失 |
可否保持一致 |
可 |
可 |
不可 |
可 |
可 |
可 |
不可 |
可 |
一致 |
表1中示出了文件A的两个副本,分别为副本1和副本2。根据写请求的三种类型,表1示出了九种不同的情况。其中,表1中“之前”代表在第二时刻之前已成功处理的写请求;表1中“之后”代表在第二时刻之后成功处理的写请求,表1中“丢失”代表丢失的写请求。表1中“可”代表可以通过一致化处理使得副本1和副本2的最新数据保持一致,表1中“不可”代表无法通过一致化处理使得副本1和副本2的最新数据保持一致。
下面按照表1从左至右分别描述第2列至第10列的情况:
第2列:当某写请求在副本1和副本2获得快照之前已分别写入副本1和副本2时,则副本1的快照和副本2的快照中都保存有该写请求所写入的数据。因此该写请求写入的数据在两个副本中是一致的。
第3列:当某写请求在副本1获得快照之后写入副本1时,则副本1的快照并未保存有该写请求所写入的数据。当该写请求在副本2获得快照之前写入副本2时,则副本2的快照保存有该写请求所写入的数据。这种情况下,通过对比副本1的快照和副本1的最新数据即可确定该写请求写入的数据所在的数据块,这种情况下,通过将副本1的最新数据中的、这些数据块的数据覆盖副本2的最新数据中的、这些数据块的数据即可实现副本1和副本2对于该写请求的一致。
第4列:当某写请求由于故障等原因而丢失导致该写请求未将数据写入副本1时,副本1的快照并未保存有该写请求所写入的数据。当该写请求在副本2获得快照之前写入副本2时,则副本2的快照保存有该写请求所写入的数据。这种情况下,通过对比副本2的快照和副本2的最新数据无法确定该写请求写入的数据所在的数据块,这种情况下,也就无法将副本2的最新数据同步到副本1中,此时无法保持一致。
第5列与第3列类似,不再赘述。第6列:当某写请求在副本1和副本2获得快照之后分别写入副本1和副本2时,则副本1的快照和副本2的快照中未保存有该写请求所写入的数据。这种情况下,对比副本1的最新数据和副本1的快照可以确定该写请求写入的数据所在的数据块,同样,对比副本2的最新数据和副本2的快照也可以确定该写请求写入的数据所在的数据块。由于同一写请求写入的数据是相同的,写入的数据块也是相同的,因此该写请求写入的数据在两个副本中是一致的。
第7列:当某写请求由于故障等原因而丢失导致该写请求未将数据写入副本1时。当该写请求在副本2获得快照之后写入副本2时,则副本2的快照未保存该写请求所写入的数据。这种情况下,通过对比副本2的快照和副本2的最新数据可以确定该写请求写入的数据所在的数据块,这种情况下,通过将副本2的最新数据中的、这些数据块的数据覆盖副本1的最新数据中的、这些数据块的数据即可实现副本1和副本2对于该写请求的一致。
第8列与第4列类似,不再赘述。
第9列与第7列类似,不再赘述。
第10列:当某写请求由于故障等原因而丢失导致该写请求未将数据写入副本1和副本2时,副本1的快照和副本2的快照均未保存有该写请求所写入的数据,此时,对于该写请求而言,副本1和副本2是一致的。
通过上述分析可知,只有在第4列和第8列的情况会出现不一致的情况,因此本发明只需要避免这两种情况即可。当在所述第一时刻处于处理中的对所述至少部分副本的写请求已处理成功,且在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求已处理成功时,则可以确定不存在第4列和第8列的情况,通过本次快照处理可以保证副本的一致性。
其中,步骤S300可以具体包括:当在所述第一时刻后的预设时长内,第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照。
可以理解的是,虽然写请求的处理需要花费一定的时间,但是由于时效性的要求,也不能等待太长时间,因此通过第一时刻即可排除由于处理超时等原因带来的长时间等待。
可选的,图1所示实施例还可以包括:当在所述第一时刻后的预设时长内,第一请求组中至少一个请求或第二请求组中至少一个请求未成功处理时,将所述待确认快照确定为不可用快照。
此时,本发明可以进行数据一致性处理,以恢复数据。
本发明实施例提供了一种分布式存储进行快照的方法,在第一时刻开始对分布式存储的至少部分副本进行快照处理;在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述至少部分副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求。可见,本发明进行快照处理时并未堵塞写请求,同时,本发明通过监控快照开始时处于处理中的写请求以及进行快照处理过程中接收到的写请求,来保证副本的一致性,避免了由于未堵塞写请求带来的副本不一致的问题。
如图2所示,本发明实施例提供的一种分布式存储进行快照的方法,可以包括:
S100、在第一时刻开始对分布式存储的各副本进行快照处理;
S200、在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
其中,步骤S100和步骤S200已在图1所示实施例中说明,不再赘述。
S201、为第一请求组中各请求及第二请求组中各请求添加预设标记,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述副本的写请求。
上述预设标记可以为用于跟踪写请求是否被成功处理的标记。
其中,步骤S201可以具体包括:
为在第三时刻至第四时刻之间接收到的对所述至少部分副本的写请求添加预设标记,为在所述第三时刻处于处理中的对所述至少部分副本的写请求添加预设标记,其中,所述第三时刻早于所述第一时刻,所述第四时刻晚于所述第二时刻。
通过在早于第一时刻的第三时刻开始对写请求添加预设标记,可以跟踪更多的写请求。同样,在晚于第二时刻的第四时刻才结束对写请求添加预设标记,也可以跟踪更多的写请求。
通过跟踪更对的写请求,可以使得本发明确定的可用快照的准确性更高。
S310、当所有添加有预设标记的各请求均已成功处理时,将所述待确认快照确定为可用快照。
其中,步骤S310为图1所示步骤S300的一种可选的具体执行方式。
如图3所示,本发明实施例提供的一种分布式存储进行快照的方法,可以包括:
S100、在第一时刻开始对分布式存储的各副本进行快照处理;
S200、在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
S300、当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述副本的写请求。
其中,步骤S100、步骤S200和步骤S300已在图1所示实施例中说明,不再赘述。
S400、确定需进行一致性处理的第一文件的目标副本;
其中,目标副本可以为第一文件的一个或多个副本。具体的,目标副本可以为写入失败的副本,例如:某写请求对文件A的副本1的写入失败,则需要对该副本1进行一致性处理,以使得该副本1与文件A的其他副本保持一致。可选的,写入失败的副本可以带有预设的副本标识,本发明可以通过该预设的副本标识来识别写入失败的副本。
S500、确定所述目标副本与所述第一文件的除所述目标副本外的其他副本的、最新的一致性快照,所述一致性快照至少包括:所述目标副本的第一可用快照和所述可用副本的第二可用快照,所述可用副本为所述其他副本中的一个副本,所述第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配。
其中,第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配可以为:第一可用快照的获得时刻与所述第二可用快照的获得时刻的时间间隔小于预设间隔。通过该预设间隔的限制,可以保证两个可用快照为同一次快照处理得到的快照。
S600、将所述目标副本的最新数据与所述第一可用快照进行对比,确定第一差异数据块组;
第一差异数据块组为进行快照处理后目标副本又被修改的数据块。
S700、将所述第一可用副本的最新数据与所述第二可用快照进行对比,确定第二差异数据块组;
第二差异数据块组为进行快照处理后第一可用副本又被修改的数据块。
S800、将所述第一差异数据块组与所述第二差异数据块组的并集确定为第三差异数据块组;
S900、将所述第一可用副本的最新数据中的、所述第三差异数据块组中各数据块的数据覆盖所述目标副本的最新数据中的、所述第三差异数据块组中各数据块的数据。
为方便理解,下面对步骤S400至步骤S900进行举例说明:
假设每天进行一次快照处理,文件A有100个副本,分别为副本1至副本100。在第N天,文件A的各副本进行了快照处理,获得了100个可用快照。第N+1天,某写请求A在写入副本3时写入失败,但是写入其他99个副本成功。由于副本3存在写入失败,因此需要进行一致性处理,将副本3确定为目标副本,将其他99个副本确定为可用副本。将第N天得到的副本3的快照作为第一可用快照,将第N天得到的副本1(可用副本中的一个)的快照作为第二可用快照。然后对比副本3当前的最新数据与第一可用快照,确定其中的数据块1和数据块3发生了变化,将数据块1和数据块3确定为第一差异数据块组。对比副本1当前的最新数据与第二可用快照,确定其中的数据块1、数据块4和数据块8发生了变化(这三个数据块中即包含了写请求A写入的数据),将数据块1、数据块4和数据块8确定为第二差异数据块组。第一差异数据块组与第二差异数据块组的并集为:数据块1、数据块3、数据块4、和数据块8。
则本发明可以将副本1中数据块1、数据块3、数据块4、和数据块8的当前的最新数据分别覆盖到副本3的数据块1、数据块3、数据块4、和数据块8中,这样就使得副本1与副本3的数据保持一致。
与上述方法实施例相对应,本发明还提供了一种分布式存储进行快照的装置,如图4所示,该装置可以包括:快照单元100、快照获得单元200和第一快照确定单元300,
所述快照单元100,用于在第一时刻开始对分布式存储的各副本进行快照处理;
所述快照获得单元200,用于在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
所述第一快照确定单元300,用于当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述副本的写请求。
可选的,图4所示装置还包括:标记添加单元,用于为所述第一请求组中各请求及所述第二请求组中各请求添加预设标记;
可选的,标记添加单元可以具体用于:
为在第三时刻至第四时刻之间接收到的对所述至少部分副本的写请求添加预设标记,为在所述第三时刻处于处理中的对所述至少部分副本的写请求添加预设标记,其中,所述第三时刻早于所述第一时刻,所述第四时刻晚于所述第二时刻。
所述第一快照确定单元300,具体用于当所有添加有预设标记的各请求均已成功处理时,将所述待确认快照确定为可用快照。
可选的,所述第一快照确定单元300,具体用于当在所述第一时刻后的预设时长内,第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照;
可选的,图4所示装置还包括:第二快照确定单元,用于当在所述第一时刻后的预设时长内,第一请求组中至少一个请求或第二请求组中至少一个请求未成功处理时,将所述待确认快照确定为不可用快照。
可选的,图4所示装置还包括:目标副本确定单元、一致性快照确定单元、第一数据块确定单元、第二数据块确定单元、第三数据块确定单元和覆盖单元,
所述目标副本确定单元,用于确定需进行一致性处理的第一文件的目标副本;
所述一致性快照确定单元,用于确定所述目标副本与所述第一文件的除所述目标副本外的其他副本的、最新的一致性快照,所述一致性快照至少包括:所述目标副本的第一可用快照和所述可用副本的第二可用快照,所述可用副本为所述其他副本中的一个副本,所述第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配;
所述第一数据块确定单元,用于将所述目标副本的最新数据与所述第一可用快照进行对比,确定第一差异数据块组;
所述第二数据块确定单元,用于将所述第一可用副本的最新数据与所述第二可用快照进行对比,确定第二差异数据块组;
所述第三数据块确定单元,用于将所述第一差异数据块组与所述第二差异数据块组的并集确定为第三差异数据块组;
所述覆盖单元,用于将所述第一可用副本的最新数据中的、所述第三差异数据块组中各数据块的数据覆盖所述目标副本的最新数据中的、所述第三差异数据块组中各数据块的数据。
所述分布式存储进行快照的装置包括处理器和存储器,上述快照单元、快照获得单元和第一快照确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在不阻塞写请求的前提下对分布式存储进行快照。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述分布式存储进行快照的方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述分布式存储进行快照的方法。
本发明实施例提供了一种设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的分布式存储进行快照的方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
一种分布式存储进行快照的方法,所述方法包括:
在第一时刻开始对分布式存储的至少部分副本进行快照处理;
在第二时刻完成所述快照处理,获得待确认快照,其中,所述第一时刻早于所述第二时刻;
当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,其中,所述第一请求组中各请求为:在所述第一时刻处于处理中的对所述至少部分副本的写请求,所述第二请求组中各请求为:在所述第一时刻至所述第二时刻之间接收到的对所述至少部分副本的写请求。
可选的,还包括:
为所述第一请求组中各请求及所述第二请求组中各请求添加预设标记;
所述当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,包括:
当所有添加有预设标记的各请求均已成功处理时,将所述待确认快照确定为可用快照。
可选的,所述为所述第一请求组中各请求及所述第二请求组中各请求添加预设标记,包括:
为在第三时刻至第四时刻之间接收到的对所述至少部分副本的写请求添加预设标记,为在所述第三时刻处于处理中的对所述至少部分副本的写请求添加预设标记,其中,所述第三时刻早于所述第一时刻,所述第四时刻晚于所述第二时刻。
可选的,所述当第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照,包括:
当在所述第一时刻后的预设时长内,第一请求组中各请求以及第二请求组中各请求均已成功处理时,将所述待确认快照确定为可用快照。
可选的,所述方法还包括:
当在所述第一时刻后的预设时长内,第一请求组中至少一个请求或第二请求组中至少一个请求未成功处理时,将所述待确认快照确定为不可用快照。
可选的,还包括:
确定需进行一致性处理的第一文件的目标副本;
确定所述目标副本与所述第一文件的除所述目标副本外的其他副本的、最新的一致性快照,所述一致性快照至少包括:所述目标副本的第一可用快照和所述可用副本的第二可用快照,所述可用副本为所述其他副本中的一个副本,所述第一可用快照的获得时刻与所述第二可用快照的获得时刻匹配;
将所述目标副本的最新数据与所述第一可用快照进行对比,确定第一差异数据块组;
将所述第一可用副本的最新数据与所述第二可用快照进行对比,确定第二差异数据块组;
将所述第一差异数据块组与所述第二差异数据块组的并集确定为第三差异数据块组;
将所述第一可用副本的最新数据中的、所述第三差异数据块组中各数据块的数据覆盖所述目标副本的最新数据中的、所述第三差异数据块组中各数据块的数据。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。