数据处理方法、装置和设备与流程

文档序号:26405764发布日期:2021-08-24 16:20阅读:115来源:国知局
数据处理方法、装置和设备与流程

本申请涉及计算机技术领域,具体涉及一种数据处理方法、装置、电子设备和存储设备。



背景技术:

在数据库产品中,为了保证某个副本损坏后,在维修期间,应用系统仍旧能够正常平稳运行,不受影响(或者影响微小),传统的副本以多个group方式将副本进行组织,比如3个副本则需要3个物理节点作为一组进行管理。

现有技术下,采用如下方式放置副本:ceph:采用cursh-hash方式副本放置,由于采用的是hash方式,只有对象数量较大时才具有均衡效果。

因此,现有技术放置副本的方法存在副本数量较小时不具均衡效果的问题。



技术实现要素:

本申请提供一种数据处理方法、电子设备及存储设备,以解决现有技术放置副本的方法存在副本数量较小时不具均衡效果的问题。

本申请提供一种数据处理方法,包括:

获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

获取用于存储所述目标数据的存储节点;

根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

可选的,所述第二副本的编号与第二副本的编号错位排列,包括:

同一存储节点上相同次序的第一副本存储节点行中的第一副本的编号与第二副本存储节点行中的第二副本的编号不相同。

可选的,所述第一副本为提供读写服务的副本,所述第二副本与所述第一副本进行数据同步。

可选的,所述根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成,包括:

对所述第一副本进行编号,获得第一副本的编号;

对所述存储节点进行编号,获得存储节点的编号;

根据所述第一副本的编号和所述存储节点的编号,依次将所述第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行。

可选的,所述将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行,包括:

获得指定第一副本存储节点行的序数;

获得指定第一副本存储节点行中第一副本的编号;

根据所述指定第一副本存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号;

根据所述第二副本的编号,将对应的第二副本放置在所述存储节点上,获得第一数量的第二副本存储节点行。

可选的,所述根据所述指定第一副本存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号,包括:

根据所述指定第一副本存储节点行的序数和存储节点的数量进行取余计算,得到第一计算结果;

根据第一计算结果,得到第二副本与第一副本错开放置的偏移量;

根据所述偏移量和第一副本的编号,获得所述第二副本对应的数据分片的编号。

可选的,所述数据分片包括第三副本;

所述方法还包括:

当放置第三副本时,根据存储节点的编号确定是否有均匀放置解;

若无,采用启发式算法进行数据分片的第三副本的放置。

可选的,还包括:

接收到失效的存储节点上报的存储节点失效信息;

根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作。

可选的,所述存储节点失效信息,包括以下至少一种:

输入输出异常信息;

存储节点读取其上的数据分片的副本时超过预设时长的超时信息。

可选的,所述根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作,包括:

获得所述失效的存储节点上第一副本的编号;

根据所述失效的存储节点上第一副本的编号,得到失效的存储节点上第一副本对应的第二副本在其他存储节点上的目标位置;

根据所述目标位置,获得新的第一副本;

利用新的第一副本,执行所述失效的存储节点上第一副本的工作。

本申请还提供一种数据处理装置,包括:

目标数据获取单元,用于获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

存储节点获取单元,用于获取用于存储所述目标数据的存储节点;

第一副本放置单元,用于按照第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行按照所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

第二副本放置单元,用于将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

本申请还提供一种电子设备,包括:

处理器;以及

存储器,用于存储数据处理方法的程序,该设备通电并通过所述处理器运行该数据处理方法的程序后,执行下述步骤:

获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

获取用于存储所述目标数据的存储节点;

根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

本申请还提供一种存储设备,存储有数据处理方法的程序,该程序被处理器运行,执行下述步骤:

获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

获取用于存储所述目标数据的存储节点;

根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

与现有技术相比,本发明具有以下优点:

本申请提供的数据处理方法、装置、电子设备及存储设备,获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;获取用于存储所述目标数据的存储节点;根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的存储节点行;将第二副本按照指定的规则依次放置在所述存储节点上,其中,获得第一数量的第二存储节点行;其中,相同次序的第一存储节点行包含的第一副本的编号的集合和第二存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。本申请提供的数据处理方法,根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的存储节点行;将第二副本按照指定的规则依次放置在所述存储节点上,其中,获得第一数量的第二存储节点行;其中,相同次序的第一存储节点行包含的第一副本的编号的集合和第二存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列,,实现了第一副本和第二副本均衡的分布在各个存储节点上,与副本的数量无关,解决了现有技术放置副本的方法存在的副本数量较小时不具均衡效果的问题。

附图说明

图1是本申请第一实施例提供的一种数据处理方法的流程图。

图2是本申请第一实施例提供的一种数据分布效果的示意图。

图3是本申请第二实施例提供的一种数据处理装置的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

本申请第一实施例提供一种数据处理方法,其执行主体可以为控制节点服务器。以下结合图1、图2进行说明。

如图1所示,在步骤s101中,获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本。

所述数据分片,即shard,分布式存储系统将数据分为若干分片(如1024),然后以分片为单元进行管理,每个分片有若干副本数。所述数据分片,也可以称为数据管理单元。

副本,即分布式存储系统为了规避故障而采用的数据冗余物理单元,通常多个副本间具有独立的故障概率(无依赖性)。副本间可以通过协议进行数据同步,保证数据在多个副本间一致性。通常为了提高可靠性以及一致性,会至少设置3个副本,通过投票机制确保数据的一致性。

所述第一副本可以为提供读写服务的副本,第二副本与第一副本进行数据同步。

所述提供读写服务的副本,即leader副本,用于向外界提供读写服务。

具有相同编号的第一副本与第二副本不被放置于同一个存储节点上。

如图2所示,具有相同编号的第一副本与第二副本不被放置于同一个存储节点上。

如图1所示,在步骤s102中,获取用于存储所述目标数据的存储节点。

在图2中,分布式存储系统具有存储节点node0-node17,共计18个存储节点。这些存储节点被编号为0-17。

如图1所示,在步骤s103中,根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成。

所述第一数量,指第一副本存储节点行的行数。如图2,第一数量为34。

所述根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成,包括:

将所述第一副本进行编号,获得第一副本的编号;

将所述存储节点进行编号,获得存储节点的编号;

按照所述第一副本的编号和所述存储节点的编号,依次将所述第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行。

如图2所示,第一副本的编号范围是0-611,分布式存储系统中的存储节点的编号是从0-17。将编号为0-17的第一副本放置在存储节点0-17的第一行,将编号为18-35的第一副本放置在第四行,依次类推,将编号为594-611的第一副本放置在第100行。

图2中可以看出,当第一副本17放到node17后,进行了换行。从第四行开始,重新进行下一行第一副本的放置,第二行和第三行分别用于放置第二副本和第三副本。

将第一副本0-17所在的存储空间称为第一副本存储节点行。

将第一副本18-35所在的存储空间称为第二副本存储节点行。依次类推。

如图1所示,在步骤s104中,将所述第二副本按照指定的规则依次放置在所述存储节点上,其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

所述第二副本的编号与第二副本的编号错位排列,包括:

同一存储节点上相同次序的第一副本存储节点行中的第一副本的编号与第二副本存储节点行中的第二副本的编号不相同。

如图2所示,第二行(编号为1-17,0),第五行(编号为20-35,18,19),第八行(编号为39-53,36-38),依次类推,每隔三行放置一行第二副本。

数据分片还可以包括第三副本;如图2所示,第三行(编号为2-17,0,1),第六行(编号为22-35,18-21),第九行(编号为42-53,36-41),依次类推,每隔三行放置一行第三副本。

编号相同的第一副本、第二副本和第三副本存储有相同的数据。其中leader副本可以向外界提供读写服务。

图2中,每一组存储节点行包括第一副本存储节点行、第二副本存储节点行和第三副本存储节点行。每一组存储节点行构成一个分组。如图2所示,group0包括第一行的第一副本,第二行的第二副本和第三行的第三副本。group1包括第四行的第一副本,第五行的第二副本和第六行的第三副本。依次类推。共有34个分组。

如图2所示,第一行的第一副本的编号为0-17,第二行的第二副本的编号为1-17,0。二者具有相同的编号集合。二者的区别在于编号进行了错位。

所述将第二副本按照指定的规则依次放置在所述存储节点上,其中,获得第一数量的第二存储节点行;其中,相同次序的第一存储节点行包含的第一副本的编号的集合和第二存储节点行包含的第二副本的编号的集合相同,并且同一存储节点上相同次序的第一存储节点行中的第一副本的编号与第二存储节点行中的第二副本的编号不相同,包括:

获得指定第一副本存储节点行的序数;

获得指定第一副本存储节点行中第一副本的编号;

根据所述指定存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号;

根据所述第二副本的编号,将对应的第二副本放置在所述存储节点上,获得第一数量的第二副本存储节点行。

所述根据所述指定存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号,包括:

根据所述指定第一副本存储节点行的序数和存储节点的数量进行取余计算,得到第一计算结果;

根据第一计算结果,得到第二副本与第一副本错开放置的偏移量;

根据所述偏移量和第一副本的编号,获得所述第二副本对应的数据分片的编号。

具体的,根据所述指定第一副本存储节点行的序数和存储节点的数量进行取余计算,得到第一计算结果,包括:

当指定第一副本存储节点行的序数小于或等于存储节点的数量时,所述指定第一副本存储节点行的序数对存储节点的数量取余,得到第一计算结果;

当指定第一副本存储节点行的序数大于存储节点的数量时,存储节点的数量减1,得到第二计算结果;

根据指定第一副本存储节点行的序数和第二计算结果,得到第三计算结果;

第三计算结果对存储节点的数量取余,得到第一计算结果。

根据指定第一副本存储节点行的序数和第二计算结果,得到第三计算结果,可以指指定第一副本存储节点行的序数减去第二计算结果的倍数,得到第三计算计算结果。

所述根据第一计算结果,得到第二副本与第一副本错开放置的偏移量,包括:

将存储节点的数量减去第一计算结果的差值作为第二副本与第一副本错开放置的偏移量;或者,

将第一计算结果作为第二副本与第一副本错开放置的偏移量。

如图2所示,如针对第一组存储节点行,即group0,第一副本存储节点行的序数为1,存储节点的数量为18,第一行为第一副本,其编号为(0-17)。首先,将第一副本存储节点行的序数1对18求余,第一计算结果为1,将1作为第二副本与第一副本错开放置的偏移量,第一副本编号为0,获得第二副本对应的数据分片的编号为1,因此,编号为0的第一副本对应编号为1的第二副本,将编号为1的第二副本对应放置在编号为0的第一副本的下一行。第一副本编号为1,获得第二副本对应的数据分片的编号为2,因此,编号为1的第一副本对应编号为2的第二副本,将编号为2的第二副本对应放置在编号为1的第一副本的下一行。

再如,针对第四组存储节点行,即group3,第一副本存储节点行的序数4,存储节点的数量为18,首先,将第一副本存储节点行的序数4对18求余,第一计算结果为4,将3将4作为第二副本与第一副本错开放置的偏移量,第一副本编号为54,获得第二副本对应的数据分片的编号为54+4=58,因此,编号为54的第一副本对应编号为58的第二副本,将编号为58的第二副本对应放置在编号为54的第一副本的下一行。

再如,针对第十九组存储节点行,即group18,第一副本存储节点行的序数19,存储节点的数量为18,首先,存储节点的数量减1,得到17;第一副本存储节点行的序数19减去17,得到第三计算结果为2;第三计算结果2对存储节点的数量取余,得到第一计算结果2,将2作为第二副本与第一副本错开放置的偏移量,第一副本编号为54,获得第二副本对应的数据分片的编号为325+2=327,因此,编号为325的第一副本对应编号为327的第二副本,将编号为327的第二副本对应放置在编号为325的第一副本的下一行。

作为一种实施方式,本申请第一实施例还可以包括:

当放置第三副本时,根据存储节点的编号确定是否有均匀放置解;

若无,采用启发式算法进行放置数据分片的第三副本的放置。

图2所示的系统,在所有存储节点都正常工作时,第一副本作为leader副本,每个节点上都有34个leader副本工作,同时还有数据同步的34个第二副本和34个第三副本。因此各个存储节点上工作负载非常均衡。

作为一种实施方式,本申请第一实施例还可以包括:

接收到失效的存储节点上报的存储节点失效信息;

根据所述存储节点失效信息,对所述失效的存储节点上第一副本执行失效转移操作。

所述存储节点失效信息,包括以下至少一种:

输入输出异常信息;

存储节点读取其上的数据分片的副本时超过预设时长的超时信息。

所述存储节点失效,可以表现为输入输出异常,或者是存储节点读取其上的数据分片的副本时超过预设时长的超时信息。

所述根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作,包括:

获得所述失效的存储节点上第一副本的编号;

根据所述失效的存储节点上第一副本的编号,得到失效的存储节点上第一副本对应的第二副本在其他存储节点上的目标位置;

根据所述目标位置,获得新的第一副本;

利用新的第一副本,执行所述失效的存储节点上第一副本的工作。

如图2所示的系统,当存储节点0,即node0发生故障时,在node0上的leader副本(编号为0,306,18,324,36,342,54,306,72,378,90,396,72,378,126,432,144,450,162,468,180,486,198,504,216,522,234,540,594)不能够正常工作。此时,node17(第二副本0,第二副本306),node16(第二副本18,第二副本324),node15(第二副本36,第二副本342),node14(第二副本54,第二副本306),node13(第二副本72,第二副本378),node12(第二副本90,第二副本396),node11(第二副本108,第二副本414),node10(第二副本126,第二副本432),node9(第二副本144,第二副本450),node8(第二副本162,第二副本468),node7(第二副本180,第二副本486),node6(第二副本198,第二副本504),node5(第二副本216,第二副本522),node4(第二副本234,第二副本540),node3(第二副本252,第二副本558),node2(第二副本270,第二副本576),node1(第二副本288,第二副本594)会转换为leader副本继续工作。因此各个存储节点上的负载保持均衡。

至此,完成了对本申请第一实施例的介绍,本申请第一实施例提供的数据处理方法,不仅实现了无故障时系统负载均匀分布在所有健康节点上,而且实现了在一个节点故障情形下,系统负载均匀分布在所有健康节点上,而且为固定映射,当一个节点出现故障时,不会出现性能下滑严重的问题,此外,本申请的方法对数据管理单元的数量也无要求。

与本申请第一实施例提供的数据处理方法相对应的,本申请第二实施例还提供了一种数据处理装置。

如图3所示,所述数据处理装置,包括:

目标数据获取单元301,用于获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

存储节点获取单元302,用于获取用于存储所述目标数据的存储节点;

第一副本放置单元303,用于按照第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行按照所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

第二副本放置单元304,用于将第二副本按照指定的规则依次放置在所述存储节点上,其中,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

可选的,所述第二副本的编号与第二副本的编号错位排列,包括:

同一存储节点上相同次序的第一副本存储节点行中的第一副本的编号与第二副本存储节点行中的第二副本的编号不相同。

可选的,所述第一副本为提供读写服务的副本,所述第二副本与所述第一副本进行数据同步。

可选的,所述第一副本放置单元具体用于:

将所述第一副本进行编号,获得第一副本的编号;

将所述存储节点进行编号,获得存储节点的编号;

根据所述第一副本的编号和所述存储节点的编号,依次将所述第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行。

可选的,所述第二副本放置单元具体用于:

获得指定第一副本存储节点行的序数;

获得指定第一副本存储节点行中第一副本的编号;

根据所述指定第一副本存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号;

根据所述第二副本的编号,将对应的第二副本放置在所述存储节点上,获得第一数量的第二副本存储节点行。

可选的,所述第二副本放置单元具体用于:

根据所述指定第一副本存储节点行的序数和存储节点的数量进行取余计算,得到第一计算结果;

根据第一计算结果,得到第二副本与第一副本错开放置的偏移量;

根据所述偏移量和第一副本的编号,获得所述第二副本对应的数据分片的编号。

可选的,所述数据分片包括第三副本;

所述装置还包括:第三副本放置单元,

用于当放置第三副本时,根据存储节点的编号确定是否有均匀放置解;

若无,采用启发式算法进行数据分片的第三副本的放置。

可选的,所述装置还包括:

存储节点失效信息接收单元,用于接收到失效的存储节点上报的存储节点失效信息;

失效转移操作单元,用于失效转移操作根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作。

可选的,所述存储节点失效信息,包括以下至少一种:

输入输出异常信息;

存储节点读取其上的数据分片的副本时超过预设时长的超时信息。

可选的,所述失效转移操作单元具体用于:

获得所述失效的存储节点上第一副本的编号;

根据所述失效的存储节点上第一副本的编号,得到失效的存储节点上第一副本对应的第二副本在其他存储节点上的目标位置;

根据所述目标位置,获得新的第一副本;

利用新的第一副本,执行所述失效的存储节点上第一副本的工作。

需要说明的是,对于本申请第二实施例提供的装置的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。

与本申请第一实施例提供的数据处理方法相对应的,本申请第三实施例还提供了一种电子设备。

所述电子设备,包括:

处理器;以及

存储器,用于存储数据处理方法的程序,该设备通电并通过所述处理器运行该数据处理方法的程序后,执行下述步骤:

获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

获取用于存储所述目标数据的存储节点;

根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行;其中,相同次序的第一副本存储节点行包含的第一副本的编号的集合和第二副本存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

可选的,所述第二副本的编号与第二副本的编号错位排列,包括:

同一存储节点上相同次序的第一副本存储节点行中的第一副本的编号与第二副本存储节点行中的第二副本的编号不相同。

可选的,所述第一副本为提供读写服务的副本,所述第二副本与所述第一副本进行数据同步。

可选的,所述根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行,其中,所述第一副本存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成,包括:

对所述第一副本进行编号,获得第一副本的编号;

对所述存储节点进行编号,获得存储节点的编号;

根据所述第一副本的编号和所述存储节点的编号,依次将所述第一副本放置在所述存储节点上,获得第一数量的第一副本存储节点行。

可选的,所述将第二副本按照指定的规则依次放置在所述存储节点上,获得第一数量的第二副本存储节点行,包括:

获得指定第一副本存储节点行的序数;

获得指定第一副本存储节点行中第一副本的编号;

根据所述指定第一副本存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号;

根据所述第二副本的编号,将对应的第二副本放置在所述存储节点上,获得第一数量的第二副本存储节点行。

可选的,所述根据所述指定第一副本存储节点行的序数和所述指定第一副本存储节点行中第一副本的编号,获得所述第二副本的编号,包括:

根据所述指定第一副本存储节点行的序数和存储节点的数量进行取余计算,得到第一计算结果;

根据第一计算结果,得到第二副本与第一副本错开放置的偏移量;

根据所述偏移量和第一副本的编号,获得所述第二副本对应的数据分片的编号。

可选的,所述数据分片包括第三副本;

所述电子设备还执行下述步骤:

当放置第三副本时,根据存储节点的编号确定是否有均匀放置解;

若无,采用启发式算法进行数据分片的第三副本的放置。

可选的,所述电子设备还执行下述步骤:

接收到失效的存储节点上报的存储节点失效信息;

根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作。

可选的,所述存储节点失效信息,包括以下至少一种:

输入输出异常信息;

存储节点读取其上的数据分片的副本时超过预设时长的超时信息。

可选的,所述根据所述存储节点失效信息,对所述失效的存储节点上的数据分片的第一副本执行失效转移操作,包括:

获得所述失效的存储节点上第一副本的编号;

根据所述失效的存储节点上第一副本的编号,得到失效的存储节点上第一副本对应的第二副本在其他存储节点上的目标位置;

根据所述目标位置,获得新的第一副本;

利用新的第一副本,执行所述失效的存储节点上第一副本的工作。

需要说明的是,对于本申请第三实施例提供的电子设备的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。

与本申请第一实施例提供的数据处理方法相对应的,本申请第四实施例还提供了一种存储设备,存储有数据处理方法的程序,该程序被处理器运行,执行下述步骤:

获取待存储的目标数据,其中,所述目标数据包括数据分片,所述数据分片包括第一副本和第二副本;

获取用于存储所述目标数据的存储节点;

根据第一副本的编号和存储节点的编号,依次将第一副本放置在所述存储节点上,获得第一数量的第一存储节点行,其中,所述存储节点行根据所述存储节点的编号,依次将第一副本放置在所有存储节点上的存储空间生成;

将第二副本按照指定的规则依次放置在所述存储节点上,其中,获得第一数量的第二存储节点行;其中,相同次序的第一存储节点行包含的第一副本的编号的集合和第二存储节点行包含的第二副本的编号的集合相同,并且所述第一副本的编号与所述第二副本的编号错位排列。

需要说明的是,对于本申请第四实施例提供的存储设备的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1