用于根据所述处理器指示接收所述第二分区视图;
[0059]所述输入输出接口还用于接收第二更新数据;
[0060]所述处理器还用于根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
[0061]其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
[0062]结合第三方面,在第三方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
[0063]所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
[0064]与所述第一计算节点竞争所述第一存储节点的写权限;
[0065]在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
[0066]结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
[0067]所述处理器与所述第一计算节点竞争所述第一存储节点的写权限,包括:
[0068]根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节占.
[0069]指示所述输入输出接口向所述第一存储节点发送对所述第一数据进行更新操作的请求;
[0070]所述输入输出接口还用于向所述第一存储节点发送对所述第一数据进行所述更新操作的请求;
[0071]其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
[0072]结合第三方面,在第三方面的第三种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
[0073]所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
[0074]使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
[0075]确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
[0076]在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
[0077]结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本,包括:
[0078]向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
[0079]指示所述输入输出接口接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
[0080]所述输入输出接口,还用于向所述第二存储节点发送所述数据更新请求;接收接收所述第二存储节点返回的所述报错信息;
[0081]所述处理器在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,包括:
[0082]在接收所述报错信息后设定时长后,指示所述输入输出接口再次向所述第二存储节点发送所述数据更新请求;
[0083]指示所述输入输出接口接收所述第二存储节点返回的数据更新成功消息;
[0084]所述输入输出接口,还用于再次向所述第二存储节点发送所述数据更新请求;接收所述第二存储节点返回的所述数据更新成功消息;
[0085]其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述第二计算节点发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
[0086]第四方面,本发明实施例提供一种分布式系统,所述分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述第二计算节点和所述多个存储节点间通信;
[0087]所述管理节点,用于生成用于指示第一时刻存储所述第一数据的至少两个存储节点的第一分区视图,以及生成用于指示第二时刻存储所述第一数据的至少两个存储节点的第二分区视图,其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同;
[0088]所述第一计算节点,用于根据第一分区视图使用第一更新数据对所述第一数据进行更新操作;
[0089]所述第二计算节点,用于在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,接收第二分区视图,根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作。
[0090]结合第四方面,在第四方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
[0091]所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
[0092]与所述第一计算节点竞争所述第一存储节点的写权限;
[0093]在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
[0094]结合第四方面,在第四方面的第二种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
[0095]所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
[0096]使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
[0097]确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
[0098]在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
[0099]本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0100]本发明实施例中,在第一计算节点基于第一分区视图对第一数据进行数据更新操作未结束时,第二计算节点能够基于第二分区视图对第一数据进行数据更新操作。由于不用等待基于第一分区视图的数据更新操作结束,即可基于第一分区视图之后发布的第二分区视图进行数据更新操作,减少业务处理的等待时间以及业务处理耗时,避免了因在基于第一分区视图的任务拖延导致的基于第二分区视图的任务的阻塞,提高了分布式系统的进行数据操作的效率。
【附图说明】
[0101]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
[0102]图1为分布式系统的示意图;
[0103]图2为链式存储结构的示意图;
[0104]图3为本发明实施例中数据处理方法的流程示意图;
[0105]图4为本发明实施例中数据处理方法另一流程示意图;
[0106]图5为本发明实施例中存储节点变更的示意图;
[0107]图6为本发明实施例中数据处理方法的又一流程示意图;
[0108]图7为本发明实施例中存储节点变更的另一示意图;
[0109]图8为本发明实施例中数据处理装置的结构示意框图;
[0110]图9为本发明实施例中计算节点的结构示意框图。
【具体实施方式】
[0111]分布式系统中的管理节点负责管理维护数据的存储节点的信息,生成数据的标识与数据的存储位置的映射表,并将该映射表发送给每个计算节点,计算节点将该映射表保存在本地存储器上,该映射表又称为计算节点上的分区视图,计算节点基于保存的分区视图确定数据的存储节点,进而向对应的存储节点发起数据业务(如读操作、写操作)请求。
[0112]本发明实施例提供一种分布式系统中数据处理方法、装置及系统,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
[0113]图3为分布式系统中数据处理方法的流程示意图,该流程包括如下步骤:
[0114]步骤101:在第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,第二计算节点接收第二分区视图;
[0115]步骤102:第二计算节点根据第二分区视图使用第二更新数据对第一数据进行更新操作;
[0116]其中,第一分区视图和第二分区视图是由管理节点生成的;第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点;第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点;其中,第一时刻与第二时刻不同;第一时刻存储第一数据的至少两个存储节点与第二时刻存储第一数据的至少两个存储节点不完全相同。
[0117]具体的,分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,其中,第一计算节点与第二计算节点为分布式系统中的至少两个计算节点中的两个计算节点。继续参照图1,管理节点、第一计算节点、第二计算节点和多个存储节点间通过网络进行通?目。
[0118]在第一时刻,管理节点生成第一分区视图,第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点。在第一时刻之后,管理节点因检测到存储第一数据的存储节点发生变化,在第二时刻生成第二分区视图,第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点。由于,第二分区视图体现的存储节点发生变更后用于存储第一数据的存储节点的信息,所以第一分区视图指示的第一时刻存储第一数据的至少两个存储节点,与第二分区视图指示的第二时刻存储第一数据的至少两个存储节点不完全相同。
[0119]在管理节点生成第二分区视图之后,会将第二分区视图发送至各计算节点,以使计算节点能够基于第二分区视图进行数据操作(如读数据操作、写数据操作)。
[0120]步骤101中,在第二计算节点接收第二分区视图时,尚有第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作。
[0121]步骤102中,第二计算节点接收到客户端的请求,执行客户端的请求,在第一计算节点根据第一分区视图的对第一数据的更新操作尚未结束的情况下,使用第二更新数据对第一数据进行更新操作。
[0122]由于不用等待基于第一分区视图的数据更新操作结束,即可基于第一分区视图之后发布的第二分区视图进行数据更新操作,减少业务处理的等待时间以及业务处理耗时,避免了因在基于第一分区视图的任务拖延导致的基于第二分区视图的任务的阻塞,提高了分布式系统的进行数据操作的效率。
[0123]可选的,本发明实施例中可能出现的一种情况为:第一分区视图指示的存储第一数据的至少两个存储节点,和第二分区视图指示的存储第一数据的至少两个存储节点均包含第一存