CN105391755B - 一种分布式系统中数据处理方法、装置及系统 - Google Patents

一种分布式系统中数据处理方法、装置及系统 Download PDF

Info

Publication number
CN105391755B
CN105391755B CN201510644448.1A CN201510644448A CN105391755B CN 105391755 B CN105391755 B CN 105391755B CN 201510644448 A CN201510644448 A CN 201510644448A CN 105391755 B CN105391755 B CN 105391755B
Authority
CN
China
Prior art keywords
data
node
memory
updated
version
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
Application number
CN201510644448.1A
Other languages
English (en)
Other versions
CN105391755A (zh
Inventor
薛贞文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510644448.1A priority Critical patent/CN105391755B/zh
Publication of CN105391755A publication Critical patent/CN105391755A/zh
Application granted granted Critical
Publication of CN105391755B publication Critical patent/CN105391755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式系统中数据处理方法、装置及系统,用于解决由于计算节点需等待基于原分区视图的任务完成,才能基于新分区视图进行数据处理导致分布式系统的数据处理效率降低的问题。该数据处理方法包括:在第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,第二计算节点接收第二分区视图;所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;其中,所述第一分区视图指示的第一时刻存储所述第一数据的至少两个存储节点,与所述第二分区视图指示的第二时刻存储所述第一数据的至少两个存储节点不完全相同。

Description

一种分布式系统中数据处理方法、装置及系统
技术领域
本发明涉及数据存储领域,特别涉及一种分布式系统中数据处理方法、装置及系统。
背景技术
分布式系统是指将计算资源和存储资源分散到不同的节点上,通过网络将各节点联系起来的系统。分布式系统可以通过管理和控制多个节点来完成一项任务,但对外表现为一台独立完整的系统,用户感知不到分布式系统任务在内部的执行细节。
图1为分布式系统的示意图,其中,客户端用来接收用户需求(如写请求和读请求),计算节点负责分发路由,而存储节点负责单盘管理和实际存储,另外,系统中还包括管理节点,负责对多个计算节点和存储节点进行管理。
分布式系统采用多副本策略保存数据,即将同一数据保存在多个存储节点上,以避免存储节点故障引起的数据丢失,增强数据存储的可靠性。同时,系统还要保障同一数据的多个副本的一致性,即用多个存储节点存储同一数据时,要保证多个存储节点上存储的数据一致。
链式复制机制是一种保证多副本一致性的策略,参照图2,存储数据的多个存储节点间存在链式关系,位于链头的存储节点称为头节点(又可称为主节点),链尾的存储节点称为尾节点,计算节点在进行写操作时,首先在头节点中进行数据写入操作,然后在链式结构中头节点后的节点2中进行写操作,依次类推,直至在尾节点中写入数据,计算节点向客户端返回数据写入成功而在读取数据时,计算节点可以只读取尾节点中存储的数据。
在分布式系统中,每个计算节点均保存有一份由管理节点统一一管理和更新维护的映射表,称为分区视图,分区视图中保存有存储每一个数据的多个存储节点的信息,计算节点具体根据保存的分区视图确定每个数据的存储节点,进而请求对应的存储节点执行对应操作。
实际情况中,存储数据的存储节点可能会发生变化,管理节点在存储数据的节点变更后会基于变更后的用于存储数据的存储节点生成新分区视图,并将新分区视图发送给各计算节点。如果有计算节点在接收到新分区视图时,有基于原分区视图的任务(如数据更新操作)尚未完成,则其余计算节点需要先等待该计算节点将基于原分区视图的任务进行完毕,才能基于新分区视图进行数据操作。由于接收新分区视图的计算节点不能立即基于新分区视图进行数据操作,将导致任务阻塞,降低分布式系统的数据处理效率。
发明内容
本发明实施例提供一种分布式系统中数据处理方法、装置及系统,用于解决由于计算节点需等待基于原分区视图的任务完成,才能基于新分区视图进行数据处理导致分布式系统的数据处理效率降低的问题。
第一方面,本发明实施例提供一种分布式系统中数据处理方法,所述分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述第二计算节点和所述多个存储节点间通信,所述方法包括:
在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,所述第二计算节点接收第二分区视图;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
所述第二计算节点与所述第一计算节点竞争所述第一存储节点的写权限;
所述第二计算节点在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述第二计算节点与所述第一计算节点竞争所述第一存储节点的写权限,包括:
所述第二计算节点根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
所述第二计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
结合第一方面,在第一方面的第三种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
所述第二计算节点使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
所述第二计算节点确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
所述第二计算节点在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第二计算节点确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本,包括:
所述第二计算节点向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
所述第二计算节点接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
所述第二计算节点在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,包括:
所述第二计算节点在接收所述报错信息后设定时长后,再次向所述第二存储节点发送所述数据更新请求;
所述第二计算节点接收所述第二存储节点返回的数据更新成功消息,其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述第二计算节点发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
第二方面,本发明实施例提供一种分布式系统中数据处理装置,所述分布式系统包括管理节点、第一计算节点、所述数据处理装置和多个存储节点,所述管理节点、所述第一计算节点、所述数据处理装置和所述多个存储节点间通信,所述数据处理装置包括:
接收模块,用于在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,接收第二分区视图;
更新模块,用于根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述更新模块,具体用于:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述更新模块具体用于:
根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
向所述第一存储节点发送对所述第一数据进行更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
结合第二方面,在第二方面的第三种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述更新模块具体用于:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述更新模块具体用于:
向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
在接收所述报错信息后设定时长后,再次向所述第二存储节点发送所述数据更新请求;
接收所述第二存储节点返回的数据更新成功消息,其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述数据处理装置发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
第三方面,本发明实施例提供一种分布式系统中计算节点,应用于分布式系统中,所述分布式系统还包括管理节点、第一计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述计算节点和所述多个存储节点间通信,所述计算节点包括:
处理器,与输入输出接口通信,用于在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,指示所述输入输出接口接收第二分区视图;
所述输入输出接口用于根据所述处理器指示接收所述第二分区视图;
所述输入输出接口还用于接收第二更新数据;
所述处理器还用于根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
结合第三方面,在第三方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述处理器与所述第一计算节点竞争所述第一存储节点的写权限,包括:
根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
指示所述输入输出接口向所述第一存储节点发送对所述第一数据进行更新操作的请求;
所述输入输出接口还用于向所述第一存储节点发送对所述第一数据进行所述更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
结合第三方面,在第三方面的第三种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本,包括:
向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
指示所述输入输出接口接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
所述输入输出接口,还用于向所述第二存储节点发送所述数据更新请求;接收接收所述第二存储节点返回的所述报错信息;
所述处理器在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,包括:
在接收所述报错信息后设定时长后,指示所述输入输出接口再次向所述第二存储节点发送所述数据更新请求;
指示所述输入输出接口接收所述第二存储节点返回的数据更新成功消息;
所述输入输出接口,还用于再次向所述第二存储节点发送所述数据更新请求;接收所述第二存储节点返回的所述数据更新成功消息;
其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述第二计算节点发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
第四方面,本发明实施例提供一种分布式系统,所述分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述第二计算节点和所述多个存储节点间通信;
所述管理节点,用于生成用于指示第一时刻存储所述第一数据的至少两个存储节点的第一分区视图,以及生成用于指示第二时刻存储所述第一数据的至少两个存储节点的第二分区视图,其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同;
所述第一计算节点,用于根据第一分区视图使用第一更新数据对所述第一数据进行更新操作;
所述第二计算节点,用于在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,接收第二分区视图,根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作。
结合第四方面,在第四方面的第一种可能的实现方式中,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
结合第四方面,在第四方面的第二种可能的实现方式中,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,在第一计算节点基于第一分区视图对第一数据进行数据更新操作未结束时,第二计算节点能够基于第二分区视图对第一数据进行数据更新操作。由于不用等待基于第一分区视图的数据更新操作结束,即可基于第一分区视图之后发布的第二分区视图进行数据更新操作,减少业务处理的等待时间以及业务处理耗时,避免了因在基于第一分区视图的任务拖延导致的基于第二分区视图的任务的阻塞,提高了分布式系统的进行数据操作的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为分布式系统的示意图;
图2为链式存储结构的示意图;
图3为本发明实施例中数据处理方法的流程示意图;
图4为本发明实施例中数据处理方法另一流程示意图;
图5为本发明实施例中存储节点变更的示意图;
图6为本发明实施例中数据处理方法的又一流程示意图;
图7为本发明实施例中存储节点变更的另一示意图;
图8为本发明实施例中数据处理装置的结构示意框图;
图9为本发明实施例中计算节点的结构示意框图。
具体实施方式
分布式系统中的管理节点负责管理维护数据的存储节点的信息,生成数据的标识与数据的存储位置的映射表,并将该映射表发送给每个计算节点,计算节点将该映射表保存在本地存储器上,该映射表又称为计算节点上的分区视图,计算节点基于保存的分区视图确定数据的存储节点,进而向对应的存储节点发起数据业务(如读操作、写操作)请求。
本发明实施例提供一种分布式系统中数据处理方法、装置及系统,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
图3为分布式系统中数据处理方法的流程示意图,该流程包括如下步骤:
步骤101:在第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,第二计算节点接收第二分区视图;
步骤102:第二计算节点根据第二分区视图使用第二更新数据对第一数据进行更新操作;
其中,第一分区视图和第二分区视图是由管理节点生成的;第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点;第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点;其中,第一时刻与第二时刻不同;第一时刻存储第一数据的至少两个存储节点与第二时刻存储第一数据的至少两个存储节点不完全相同。
具体的,分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,其中,第一计算节点与第二计算节点为分布式系统中的至少两个计算节点中的两个计算节点。继续参照图1,管理节点、第一计算节点、第二计算节点和多个存储节点间通过网络进行通信。
在第一时刻,管理节点生成第一分区视图,第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点。在第一时刻之后,管理节点因检测到存储第一数据的存储节点发生变化,在第二时刻生成第二分区视图,第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点。由于,第二分区视图体现的存储节点发生变更后用于存储第一数据的存储节点的信息,所以第一分区视图指示的第一时刻存储第一数据的至少两个存储节点,与第二分区视图指示的第二时刻存储第一数据的至少两个存储节点不完全相同。
在管理节点生成第二分区视图之后,会将第二分区视图发送至各计算节点,以使计算节点能够基于第二分区视图进行数据操作(如读数据操作、写数据操作)。
步骤101中,在第二计算节点接收第二分区视图时,尚有第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作。
步骤102中,第二计算节点接收到客户端的请求,执行客户端的请求,在第一计算节点根据第一分区视图的对第一数据的更新操作尚未结束的情况下,使用第二更新数据对第一数据进行更新操作。
由于不用等待基于第一分区视图的数据更新操作结束,即可基于第一分区视图之后发布的第二分区视图进行数据更新操作,减少业务处理的等待时间以及业务处理耗时,避免了因在基于第一分区视图的任务拖延导致的基于第二分区视图的任务的阻塞,提高了分布式系统的进行数据操作的效率。
可选的,本发明实施例中可能出现的一种情况为:第一分区视图指示的存储第一数据的至少两个存储节点,和第二分区视图指示的存储第一数据的至少两个存储节点均包含第一存储节点。在这种情况下,为了避免第一计算节点以及第二计算节点针对第一存储节点的数据操作相冲突,本发明实施例中引入竞争机制。
步骤102:第二计算节点根据第二分区视图使用第二更新数据对第一数据进行更新操作,具体实施时,参照图4,包括如下步骤:
步骤1021:第二计算节点与第一计算节点竞争第一存储节点的写权限;
步骤1022:第二计算节点在获得第一存储节点的写权限后,使用第二更新数据对第一存储节点中的第一数据进行更新操作。
具体的,在对第一存储节点进行数据更新操作时,要获得第一存储节点的写权限。本实施例中,由于第一计算节点根据第一分区视图对第一数据进行数据更新操作时,需要使用第一更新数据对第一存储节点中的第一数据进行更新,而根据第二分区视图进行数据更新操作的第二计算节点,同样需要在第一存储节点中进行数据更新操作。
本发明实施例中,第二计算节点与第一计算节点竞争第一存储节点的写权限,如果第二计算节点竞争成功,则第二计算节点使用第二更新数据对第一存储节点中的第一数据进行更新操作。反之,如果第一计算节点竞争成功,则第一计算节点第一更新数据对第一存储节点中的第一数据进行更新操作。
上述技术方案中,在根据第一分区视图对第一数据进行更新的第一计算节点,以及根据第二分区视图对第一数据进行更新的第二计算节点均要对第一存储节点中的第一数据进行更新时,通过让第一计算节点与第二计算节点竞争第一存储节点的写权限,避免并发冲突。
可选的,本发明实施例中,第一计算节点与第二计算节点均要对第一存储节点中的第一数据进行更新的一种可能情况为:第一存储节点为第一分区视图指示的存储第一数据的至少两个存储节点中除主存储节点之外的存储节点,且第一存储节点为第二分区视图指示的存储第一数据的至少两个存储节点中的主存储节点。
而步骤1021:第二计算节点与第一计算节点竞争第一存储节点的写权限,具体实施时,可以包括如下步骤:
第二计算节点根据第二分区视图确定存储第一数据的主存储节点为第一存储节点;
第二计算节点向第一存储节点发送对第一数据进行更新操作的请求;
其中,第一计算节点在对第一分区视图指示的存储第一数据的主存储节点中的第一数据进行更新操作之后,第一计算节点向第一存储节点发送对第一数据进行更新操作的请求;第一存储节点将对第一数据进行更新操作的写权限授予先接收到的对第一数据进行更新操作的请求对应的计算节点。
具体的,第二计算节点在使用第二更新数据对第一数据进行更新时,首先在根据第二分区视图确定出的主存储节点,即第一存储节点中进行数据更新,因此,第二计算节点向第一存储节点发送对第一数据进行更新操作的请求。
而第一计算节点在根据第一分区视图对第一数据进行更新时,首先在第一分区视图确定出的主存储节点中对第一数据进行更新,更新完毕后,继续对根据第一分区视图确定出的存储第一数据的至少两个存储节点中的除主存储节点之外的(备用)存储节点中的第一数据进行更新,其中,包括对第一存储节点中的第一数据进行更新。
因此,第一存储节点将接收到两个计算节点(第一计算节点以及第二计算节点)发送的对第一数据进行更新的请求,第二计算节点与第一计算节点将竞争第一存储节点的写权限。其中,竞争指的是在两个或两个以上的计算节点向同一存储节点发送对同一数据的数据更新请求时,只有其中一个计算节点能够获得写权限,获得写权限的计算节点能够成功进行数据更新,而竞争失败的计算节点的数据更新请求将不被存储节点响应。具体实施时,第二计算节点与第一计算节点竞争第一存储节点的写权限,包括如下实现方式:
其一,第一计算节点以及第二计算节点向第一存储节点向第一存储节点发送数据更新请求,第一存储节点根据接收到请求的先后顺序确定将写权限授予哪个计算节点,即,如果第一存储节点先接收到第一计算节点发送的数据更新请求,则将写权限授予第一计算节点,反之,如果先接收到第二计算节点发送的数据更新请求,则将写权限授予第二计算节点。
其二,第一计算节点以及第二计算节点向第一存储节点向第一存储节点发送数据更新请求,第一存储节点根据计算节点发送数据更新请求的先后顺序确定将写权限授予哪个计算节点,即,计算节点发送的数据更新请求中包含一时间戳,该时间戳为计算节点发送向第一存储节点发送数据更新请求的时间,第一存储节点在接收到第一计算节点以及第二计算节点发送的针对第一数据的数据更新请求时,将根据各自请求中的时间戳确定发送请求的先后顺序,将写权限授予先发送请求的一方。
另外,第一存储节点与第二存储节点竞争第一存储节点的写权限还可以采用现有技术中的其他竞争机制,本发明实施例不予详述。
上述技术方案中,通过将第一存储节点的写权限授予先发送请求的计算节点,不仅能够避免并发冲突,还能够提高分布式系统的效率。
可选的,本发明实施例中,还采用主存储节点加锁机制来保证各存储节点的数据的一致性,具体来讲,第一计算节点在对第一数据进行数据更新操作时,首先根据第二分区视图确定出存储第一数据的至少2个存储节点,其中,包括一个主存储节点(又称为:头节点),第一计算节点首先要竞争获得主存储节点的写权限,然后才能在主存储节点进行数据更新操作,接收到主存储节点返回的数据更新成功消息后,再在图2所示的链式结构中位于主存储节点之后的存储节点中进行数据更新操作,每次只有在链式结构中的前一节点(或称为父节点)写入数据成功后,才在后一节点中进行数据更新操作,以保证多副本中数据的一致性。
可选的,本发明实施例中,还采用版本控制机制来保证数据的稳定性和有效性。版本控制指的是,每次写入的数据均对应一个版本号,计算节点进行写操作时,先读取主节点中数据的版本值Vi,本次写操作写入数据的版本值为Vi+1。在引入版本控制机制后,存储节点将不接受低版本数据对高版本数据的覆盖请求,保证数据的稳定性和一致性。
可选的,本发明实施例中,结合竞争机制以及版本控制来保证数据的一致性和稳定性。
下面予以举例说明,不妨设第一分区视图中存储第一数据的三个节点为节点A、节点B(即为第一存储节点)、节点C。其中节点A为主存储节点,且在第一计算节点根据第一分区视图进行数据更新之前,三个节点中包含的第一数据的版本均为t,第一数据的状态可以标记为:{A[t]、B[t]、C[t]}。
第一计算节点根据第一分区视图响应客户端的对第一数据进行更新的请求,首先读出节点A中第一数据的原版本值为t,然后,第一计算节点请求在节点A中将第一数据更新为版本为t+1的数据。第一计算节点在节点A中进行数据更新成功后,继续向节点B中发送将第一数据更新为版本t+1的数据的请求。
在节点B的接收到第一计算节点发送的数据更新请求之前,参照图5,管理节点检测到节点A发生故障,将节点B作为新的主存储节点,并根据哈希算法确定出临时节点(标记为hint)替换节点A(hint节点会采用心跳检测机制将数据拷贝到节点A,本发明实施例对此不予详述),并生成第二分区视图,第二分区视图中存储第一数据的三个节点分别为节点B、hint节点、节点C。
第二计算节点接收到管理节点发送的第二分区视图之后,接收到客户端发送的对第一数据进行更新的请求,根据第二分区视图确定出主存储节点为节点B,此时,不妨设节点B尚未接收到第一计算节点发送的数据更新请求,因此,节点B中的第一数据对应的版本仍然为t,因此,第二计算节点读取节点B中第一数据的版本后,向节点B发送将第一数据更新为版本t+1的数据的请求。
在这种情况下,节点B将接收到第二计算节点发送的请求以及第一计算节点发送的请求,二者请求写入数据的的版本均合法,节点B将写权限授予先接收到的请求对应的计算节点。
如果第二计算节点竞争成功,则第二计算节点将顺次在节点B、hint节点以及节点C中使用第二更新数据对第一数据进行更新,更新后的数据的状态为{B[t+1]、hint[t+1]、C[t+1]}。由于节点B中数据的版本号已经为t+1,则节点B将拒绝第一计算节点的请求写入版本为t+1的请求,避免同版本号数据的覆盖,第一计算节点将向客户端返回数据写入失败。
对应的,如果第一计算节点竞争成功,则第一计算节点将顺次在节点B、以及节点C中使用第一更新数据对第一数据进行更新,更新后的数据在第一分区视图中的状态为{A[t+1]、B[t+1]、C[t+1]}。由于节点B中数据的版本号已经为t+1,则节点B将拒绝第二计算节点的请求写入版本为t+1的请求,避免同版本号数据的覆盖,第二计算节点将向客户端返回数据写入失败。
上述技术方案中,通过结合版本控制以及加锁机制,既能够允许基于第二分区视图的计算节点在有基于第一分区视图的任务未结束时进行数据更新操作,又能保证第二分区视图中不同存储节点中数据的一致性。
可选的,如果第二计算节点竞争第一存储节点的写权限失败,则第二计算节点向客户端返回数据写入失败消息。
可选的,作为另一实施例,第二分区视图指示的存储第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
步骤102:第二计算节点根据第二分区视图使用第二更新数据对第一数据进行更新操作,具体实施时,参照图6,包括如下步骤:
步骤1023:第二计算节点使用第二更新数据对第一存储节点存储的第一数据进行更新,形成第一存储节点中的第一版本的数据;
步骤1024:第二计算节点确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本;
步骤1025:第二计算节点在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,形成第二存储节点中的第一版本的数据。
具体的,第二计算节点根据第二分区视图确定出存储第一数据的至少两个存储节点,具体包括第一存储节点以及第二存储节点。其中,在第二计算节点对第一存储节点中的第一数据进行更新前,第一数据对应第一版本的前一版本,而在第二计算节点使用第二更新数据对第一存储节点中的第一数据进行更新之后,更新后的第二更新数据对应的版本为第一版本。
第二计算节点继续对第二存储节点中的第一数据进行更新,但是发现第二存储节点中的第一数据对应的版本低于第一版本的前一版本,本发明实施例中,第二计算节点将等待第二存储节点中的第一数据被更新为第一版本的前一版本的数据,然后,再使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新。
上述技术方案中,通过禁止跨版本的数据覆盖,即只接受原版本值的下一版本的数据更新请求,保证数据的一致性,以及在多个计算节点进行数据更新时,避免妨碍其他计算节点的数据更新的成功执行。
虽然第二计算节点需要等待第二存储节点的第一数据被更新为第二计算节点请求写入的版本的上一版本,但是,第二计算节点可以直接在第一存储节点中进行数据更新,而无需等待第一计算节点执行完基于第一分区视图的数据更新操作,仍然能够减少业务处理时间。
可选的,本发明实施例中,步骤1024:第二计算节点确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本,具体实施时,包括如下步骤:
第二计算节点向第二存储节点发送数据更新请求,数据更新请求用于请求以第二更新数据作为第一版本的数据对第一数据进行更新;
第二计算节点接收第二存储节点返回的报错信息,报错信息表明第二存储节点中的第一数据对应的版本低于第一版本的前一版本。
步骤1025:第二计算节点在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,具体实施时,包括如下步骤:
第二计算节点在接收报错信息后设定时长后,再次向第二存储节点发送数据更新请求;
第二计算节点接收第二存储节点返回的数据更新成功消息,其中,第二存储节点在存储的第一数据被第一计算节点更新为第一版本的前一版本的数据之后,响应第二计算节点发送的数据更新请求,并在第一数据被更新为第二更新数据后向第一计算节点返回数据更新成功消息。
具体的,第二存储节点在接收到跨版本的数据更新请求后,将向第二计算节点返回报错信息,以使第二计算节点获知当前的数据更新请求跨版本错误。
第二计算节点等待第二存储节点中的第一数据被更新为第一版本的前一版本的数据,其实现方式可以为:
其一,第二计算节点根据设定周期,周期性的向第二存储节点重发数据更新请求,当第二存储节点中的第一数据的版本被更新为第一版本的前一版本的数据后,第二计算节点重发的数据更新请求将被受理,第二存储节点将在第一数据被更新为版本为第一版本的数据后向第二计算节点返回数据更新成功消息。
其二,第二存储节点将主动在第一数据被第一计算节点更新为版本为第一版本的前一版本的数据后,向第二计算节点返回第一数据已被更新为第一版本的前一版本的数据的消息,第二计算节点将再次向第二存储节点发送数据更新请求,第二存储节点将受理该请求,执行数据更新。
通过上述两种方式,第二计算节点可以及时在第二存储节点存储的第一数据被更新为第一版本的前一版本的数据后,对第二存储节点中的第一数据进行更新操作,减少业务处理时间。
实际情况中,数据更新请求出现上述跨版本错误的情形,包括:
情形1,在新增存储节点来存储第一数据时,管理模块将指示第一计算节点采用后台拷贝的方式,将第一数据的历史版本拷贝在新增的存储节点中,在这种情况下,数据更新请求可能出现跨版本错误,下面予以具体说明。
不妨设第一分区视图中存储第一数据的节点为节点A(即为第一存储节点)、节点C,其中,节点A为主存储节点,节点C为尾节点。根据用户请求或者管理节点自动分配,新增节点D作为存储第一数据的节点,其中,将节点D作为节点A的子节点,以及节点C的父节点。
参照图7,管理节点分配第一计算节点进行后台拷贝,将节点C的历史版本数据拷贝至节点D。不妨设,新增节点D之前,数据的状态为{A[4],C[4]},则第一计算节点要将第一个版本的数据C[1]至第4个版本的数据C[4]拷贝至节点D(由于副本的一致性,A[i]=C[i],i取1、2、3、4)。
另外,在第一计算节点进行后台拷贝时,由于节点A、节点D、节点C上的数据尚未一致,管理节点不会生成第二分区视图,计算节点仍然按照第一分区视图进行数据处理。不妨设,第三计算节点在第一计算节点进行后台拷贝时,对数据进行了更新,数据的状态变为{A[5],C[5]|D[3]},其中,D[3]表明第一计算节点已经将数据的第三个版本数据C[3]拷贝至节点D。
当第一计算节点将将数据的第五个版本数据C[5]拷贝至节点D后,数据的状态变为{A[5],C[5]|D[5]},管理节点确定节点D的数据版本与节点C的数据版本一致后,生成第二分区视图,并将第二分区视图发送给包括第二计算节点在内的所有计算节点。
但是,不同计算节点接收到第二分区视图的时间有差异,例如,在T1时刻,第二计算节点接收到第二分区视图;在T1时刻之后的T2时刻,第三计算节点尚未接收到第二分区视图,却接收到客户端的对数据的更新请求,第三计算节点将根据保存的第一分区视图对接点A以及节点C中的数据进行更新。在T2时刻之后的T3时刻,第三计算节点根据第一分区视图将数据更新为{A[6],C[6]|D[5]}。
T3时刻之后的T4时刻,第二计算节点接收到客户端的对数据进行更新的请求,第二计算节点读取主存储节点A的数据的版本为6,则向节点A发送写入数据的版本7的数据,写入成功后,根据第二分区视图数据的状态为{A[7],D[5],C[6]}。在T4时刻之后的T5时刻,第二计算节点继续向节点D发送写入数据的版本7的数据,然而,节点D中数据的版本为5,将不接受跨版本的写请求,向第二计算节点返回报错信息,告知第二计算节点的写操作存在跨版本错误。
实际情况中,在之前的T3时刻,第三计算节点将数据更新为{A[6],C[6]|D[5]}之后,管理节点将指派第一计算节点根据第一分区视图再次进行后台拷贝,将C[6]拷贝节点D。而在T5时刻,第一计算节点的后台拷贝尚未完成,所以才出现第二计算节点的写操作跨版本的错误。第二计算节点可以周期性向节点D重发数据更新请求(即为写入数据的版本7的数据的请求),在T5时刻之后的T6时刻,第一计算节点成功将C[6]拷贝节点D,第二计算节点的数据更新请求将变为合法,第二计算节点将继续在节点D以及节点D中进行数据更新,更新后数据的状态为{A[7],D[7],C[7]}。
在情形1中,采用本发明提供的技术方案,第二计算节点能够在第一计算节点根据第一分区视图进行的数据后台拷贝完成之前,根据第二分区视图对数据进行更新操作,减少了业务等待时间,减少业务处理耗时,提高系统效率。
情形2,删除存储节点节点的情形。
不妨设第一分区视图中存储数据的节点为节点A(即为第一存储节点)、节点B、节点C(即为第二存储节点),根据用户指示或管理节点自动调度,从中删除节点B,即不再将节点B作为数据的存储节点,管理节点将生成第二分区视图,并将第二分区视图发送至各计算节点。
但是,不同计算节点接收到第二分区视图的时间有差异,例如,在T1时刻,第二计算节点接收到第二分区视图;在T1时刻之后的T2时刻,第一计算节点尚未接收到第二分区视图,却接收到客户端的对数据的更新请求,第一计算节点将根据保存的第一分区视图对接点A以及节点C中的数据进行更新。不妨设,在T2时刻之前,数据的状态为{A[2],B[2],C[2]},则第一计算节点的数据更新为写入数据的版本3的数据。
在T3时刻,节点A中数据成功被第一计算节点更新为A[3],而节点C中数据更新尚未开始(或者尚未完成),第二计算节点接收客户端的对数据的更新请求,本发明实施例中,第二计算节点不用等待第一计算节点基于第一分区视图的数据更新操作结束,直接基于第二分区视图进行数据更新操作。
首先,第二计算节点读取主存储节点A中的数据的版本为版本3,则请求向节点A发送写入数据的版本4的数据的请求,写入成功后,根据第二分区视图继续在节点C中进行数据更新。然而,在第二计算节点向节点C发送写入数据的版本4的数据的请求时,第一计算节点在节点C中的数据更新操作尚未结束,因此,根据第二分区视图,数据的状态为{A[4],C[2]},第二计算节点的数据更新请求出现跨版本错误,第二计算节点将等待第一计算节点将节点C中的数据更新为C[3]后,继续在节点C中将数据更新为C[4]。
在情形2中,采用本发明提供的技术方案,第二计算节点能够在第一计算节点根据第一分区视图进行的数据更新完成之前,根据第二分区视图对数据进行更新操作,减少了业务等待时间,减少业务处理耗时,提高系统效率。
基于相同的技术构思,本发明实施例还提供了一种分布式系统中数据处理装置200,分布式系统包括管理节点、第一计算节点、数据处理装置200和多个存储节点,管理节点、第一计算节点、数据处理装置200和多个存储节点间通信,参照图8,数据处理装置200包括:
接收模块201,用于在第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,接收第二分区视图;
更新模块202,用于根据第二分区视图使用第二更新数据对第一数据进行更新操作;
其中,第一分区视图和第二分区视图是由管理节点生成的;第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点;第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点;其中,第一时刻与第二时刻不同;第一时刻存储第一数据的至少两个存储节点与第二时刻存储第一数据的至少两个存储节点不完全相同。
可选的,本发明实施例中,第一分区视图指示的存储第一数据的至少两个存储节点和第二分区视图指示的存储第一数据的至少两个存储节点中均包含第一存储节点;
更新模块202,具体用于:
与第一计算节点竞争第一存储节点的写权限;
在获得第一存储节点的写权限后,使用第二更新数据对第一存储节点中的第一数据进行更新操作。
可选的,本发明实施例中,第一存储节点为第一分区视图指示的存储第一数据的至少两个存储节点中除主存储节点之外的存储节点,且第一存储节点为第二分区视图指示的存储第一数据的至少两个存储节点中的主存储节点;
更新模块202具体用于:
根据第二分区视图确定存储第一数据的主存储节点为第一存储节点;
向第一存储节点发送对第一数据进行更新操作的请求;
其中,第一计算节点在对第一分区视图指示的存储第一数据的主存储节点中的第一数据进行更新操作之后,第一计算节点向第一存储节点发送对第一数据进行更新操作的请求;第一存储节点将对第一数据进行更新操作的写权限授予先接收到的对第一数据进行更新操作的请求对应的计算节点。
可选的,本发明实施例中,第二分区视图指示的存储第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
更新模块202具体用于:
使用第二更新数据对第一存储节点存储的第一数据进行更新,形成第一存储节点中的第一版本的数据;
确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本;
在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,形成第二存储节点中的第一版本的数据。
可选的,本发明实施例中,更新模块202具体用于:
向第二存储节点发送数据更新请求,数据更新请求用于请求以第二更新数据作为第一版本的数据对第一数据进行更新;
接收第二存储节点返回的报错信息,报错信息表明第二存储节点中的第一数据对应的版本低于第一版本的前一版本;
在接收报错信息后设定时长后,再次向第二存储节点发送数据更新请求;
接收第二存储节点返回的数据更新成功消息,其中,第二存储节点在存储的第一数据被第一计算节点更新为第一版本的前一版本的数据之后,响应数据处理装置发送的数据更新请求,并在第一数据被更新为第二更新数据后向第一计算节点返回数据更新成功消息。
本实施例中的数据处理装置200与图3对应的数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的数据处理装置200的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
基于相同的发明构思,本发明实施例还提供一种分布式系统中计算节点300,应用于分布式系统中,分布式系统包括管理节点、第一计算节点、计算节点300和多个存储节点,管理节点、第一计算节点、计算节点300和多个存储节点间通信,参照图9,计算节点300包括:处理器301以及输入输出接口302。
其中,处理器301,与输入输出接口302通信,用于在第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,指示输入输出接口302接收第二分区视图;
输入输出接口302用于根据处理器301指示接收第二分区视图;
输入输出接口302还用于接收第二更新数据;
处理器301还用于根据第二分区视图使用第二更新数据对第一数据进行更新操作;
其中,第一分区视图和第二分区视图是由管理节点生成的;第一分区视图用于指示第一时刻存储第一数据的至少两个存储节点;第二分区视图用于指示第二时刻存储第一数据的至少两个存储节点;其中,第一时刻与第二时刻不同;第一时刻存储第一数据的至少两个存储节点与第二时刻存储第一数据的至少两个存储节点不完全相同。
可选的,本发明实施例中,第一分区视图指示的存储第一数据的至少两个存储节点和第二分区视图指示的存储第一数据的至少两个存储节点中均包含第一存储节点;
处理器301根据第二分区视图使用第二更新数据对第一数据进行更新操作,包括:
与第一计算节点竞争第一存储节点的写权限;
在获得第一存储节点的写权限后,使用第二更新数据对第一存储节点中的第一数据进行更新操作。
可选的,本发明实施例中,第一存储节点为第一分区视图指示的存储第一数据的至少两个存储节点中除主存储节点之外的存储节点,且第一存储节点为第二分区视图指示的存储第一数据的至少两个存储节点中的主存储节点;
处理器301与第一计算节点竞争第一存储节点的写权限,包括:
根据第二分区视图确定存储第一数据的主存储节点为第一存储节点;
指示输入输出接口302向第一存储节点发送对第一数据进行更新操作的请求;
输入输出接口302还用于向第一存储节点发送对第一数据进行更新操作的请求;
其中,第一计算节点在对第一分区视图指示的存储第一数据的主存储节点中的第一数据进行更新操作之后,第一计算节点向第一存储节点发送对第一数据进行更新操作的请求;第一存储节点将对第一数据进行更新操作的写权限授予先接收到的对第一数据进行更新操作的请求对应的计算节点。
可选的,本发明实施例中,第二分区视图指示的存储第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
处理器301根据第二分区视图使用第二更新数据对第一数据进行更新操作,包括:
使用第二更新数据对第一存储节点存储的第一数据进行更新,形成第一存储节点中的第一版本的数据;
确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本;
在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,形成第二存储节点中的第一版本的数据。
可选的,本发明实施例中,处理器301确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本,包括:
指示输入输出接口302向第二存储节点发送数据更新请求,数据更新请求用于请求以第二更新数据作为第一版本的数据对第一数据进行更新;
指示输入输出接口302接收第二存储节点返回的报错信息,报错信息表明第二存储节点中的第一数据对应的版本低于第一版本的前一版本;
输入输出接口302,还用于向第二存储节点发送数据更新请求;接收接收第二存储节点返回的报错信息;
处理器301在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,包括:
在接收报错信息后设定时长后,指示输入输出接口302再次向第二存储节点发送数据更新请求;
指示输入输出接口302接收第二存储节点返回的数据更新成功消息;
输入输出接口302,还用于再次向第二存储节点发送数据更新请求;接收第二存储节点返回的数据更新成功消息;
其中,第二存储节点在存储的第一数据被第一计算节点更新为第一版本的前一版本的数据之后,响应第二计算节点发送的数据更新请求,并在第一数据被更新为第二更新数据后向第一计算节点返回数据更新成功消息。
需要说明的是,以上处理器301可以是一个处理器,也可以是多个处理器的统称。例如,处理器301可以是中央处理器,也可以是特定集成电路,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器,或,一个或者多个现场可编程门阵列。
可选的,处理器301与输入输出接口302通过总线连接,该总线可以是工业标准体系结构总线、外部设备互连总线或扩展工业标准体系结构总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
本实施例中的计算节点300与图3对应的数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的计算节点300的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
基于相同的发明构思,本发明实施例提供一种分布式系统,分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,管理节点、第一计算节点、第二计算节点和多个存储节点间通信;
管理节点,用于生成用于指示第一时刻存储第一数据的至少两个存储节点的第一分区视图,以及生成用于指示第二时刻存储第一数据的至少两个存储节点的第二分区视图,其中,第一时刻与第二时刻不同;第一时刻存储第一数据的至少两个存储节点与第二时刻存储第一数据的至少两个存储节点不完全相同;
第一计算节点,用于根据第一分区视图使用第一更新数据对第一数据进行更新操作;
第二计算节点,用于在第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,接收第二分区视图,根据第二分区视图使用第二更新数据对第一数据进行更新操作。
可选的,本发明实施例中,第一分区视图指示的存储第一数据的至少两个存储节点和第二分区视图指示的存储第一数据的至少两个存储节点中均包含第一存储节点;
第二计算节点用于:根据第二分区视图使用第二更新数据对第一数据进行更新操作,包括:
与第一计算节点竞争第一存储节点的写权限;
在获得第一存储节点的写权限后,使用第二更新数据对第一存储节点中的第一数据进行更新操作。
可选的,本发明实施例中,第二分区视图指示的存储第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
第二计算节点用于:根据第二分区视图使用第二更新数据对第一数据进行更新操作,包括:
使用第二更新数据对第一存储节点存储的第一数据进行更新,形成第一存储节点中的第一版本的数据;
确定第二存储节点保存的第一数据对应的版本低于第一版本的前一版本;
在第二存储节点保存的第一数据被更新为第一版本的前一版本的数据之后,使用第二更新数据对第二存储节点中的第一版本的前一版本的数据进行更新,形成第二存储节点中的第一版本的数据。
本实施例中的分布式系统与图3对应的数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的分布式系统的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,在第一计算节点基于第一分区视图对第一数据进行数据更新操作未结束时,第二计算节点能够基于第二分区视图对第一数据进行数据更新操作。由于不用等待基于第一分区视图的数据更新操作结束,即可基于第一分区视图之后发布的第二分区视图进行数据更新操作,减少业务处理的等待时间以及业务处理耗时,避免了因在基于第一分区视图的任务拖延导致的基于第二分区视图的任务的阻塞,提高了分布式系统的进行数据操作的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

Claims (18)

1.一种分布式系统中数据处理方法,其特征在于,所述分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述第二计算节点和所述多个存储节点间通信,所述方法包括:
在所述第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,所述第二计算节点接收第二分区视图;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
2.如权利要求1所述的方法,其特征在于,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
所述第二计算节点与所述第一计算节点竞争所述第一存储节点的写权限;
所述第二计算节点在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
3.如权利要求2所述的方法,其特征在于,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述第二计算节点与所述第一计算节点竞争所述第一存储节点的写权限,包括:
所述第二计算节点根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
所述第二计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
4.如权利要求1所述的方法,其特征在于,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述第二计算节点根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
所述第二计算节点使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
所述第二计算节点确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
所述第二计算节点在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
5.如权利要求4所述的方法,其特征在于,所述第二计算节点确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本,包括:
所述第二计算节点向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
所述第二计算节点接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
所述第二计算节点在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,包括:
所述第二计算节点在接收所述报错信息后设定时长后,再次向所述第二存储节点发送所述数据更新请求;
所述第二计算节点接收所述第二存储节点返回的数据更新成功消息,其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述第二计算节点发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
6.一种分布式系统中数据处理装置,其特征在于,所述分布式系统包括管理节点、第一计算节点、所述数据处理装置和多个存储节点,所述管理节点、所述第一计算节点、所述数据处理装置和所述多个存储节点间通信,所述数据处理装置包括:
接收模块,用于在所述第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,接收第二分区视图;
更新模块,用于根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
7.如权利要求6所述的装置,其特征在于,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述更新模块,具体用于:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
8.如权利要求7所述的装置,其特征在于,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述更新模块具体用于:
根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
向所述第一存储节点发送对所述第一数据进行更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
9.如权利要求6所述的装置,其特征在于,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述更新模块具体用于:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
10.如权利要求9所述的装置,其特征在于,所述更新模块具体用于:
向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
在接收所述报错信息后设定时长后,再次向所述第二存储节点发送所述数据更新请求;
接收所述第二存储节点返回的数据更新成功消息,其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述数据处理装置发送的所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
11.一种分布式系统中计算节点,其特征在于,应用于分布式系统中,所述分布式系统还包括管理节点、第一计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述计算节点和所述多个存储节点间通信,所述计算节点包括:
处理器,与输入输出接口通信,用于在所述第一计算节点根据第一分区视图使用第一更新数据对第一数据进行更新操作时,指示所述输入输出接口接收第二分区视图;
所述输入输出接口用于根据所述处理器指示接收所述第二分区视图;
所述输入输出接口还用于接收第二更新数据;
所述处理器还用于根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作;
其中,所述第一分区视图和所述第二分区视图是由所述管理节点生成的;所述第一分区视图用于指示第一时刻存储所述第一数据的至少两个存储节点;所述第二分区视图用于指示第二时刻存储所述第一数据的至少两个存储节点;其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同。
12.如权利要求11所述的计算节点,其特征在于,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
13.如权利要求12所述的计算节点,其特征在于,所述第一存储节点为所述第一分区视图指示的存储所述第一数据的至少两个存储节点中除主存储节点之外的存储节点,且所述第一存储节点为所述第二分区视图指示的存储所述第一数据的至少两个存储节点中的主存储节点;
所述处理器与所述第一计算节点竞争所述第一存储节点的写权限,包括:
根据所述第二分区视图确定存储所述第一数据的主存储节点为所述第一存储节点;
指示所述输入输出接口向所述第一存储节点发送对所述第一数据进行更新操作的请求;
所述输入输出接口还用于向所述第一存储节点发送对所述第一数据进行所述更新操作的请求;
其中,所述第一计算节点在对所述第一分区视图指示的存储所述第一数据的主存储节点中的所述第一数据进行更新操作之后,所述第一计算节点向所述第一存储节点发送对所述第一数据进行更新操作的请求;所述第一存储节点将对所述第一数据进行更新操作的写权限授予先接收到的对所述第一数据进行更新操作的请求对应的计算节点。
14.如权利要求11所述的计算节点,其特征在于,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述处理器根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
15.如权利要求14所述的计算节点,其特征在于:
所述处理器确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本,包括:
指示所述输入输出接口向所述第二存储节点发送数据更新请求,所述数据更新请求用于请求以所述第二更新数据作为第一版本的数据对所述第一数据进行更新;
指示所述输入输出接口接收所述第二存储节点返回的报错信息,所述报错信息表明所述第二存储节点中的所述第一数据对应的版本低于所述第一版本的前一版本;
所述输入输出接口,还用于向所述第二存储节点发送所述数据更新请求;接收接收所述第二存储节点返回的所述报错信息;
所述处理器在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,包括:
在接收所述报错信息后设定时长后,指示所述输入输出接口再次向所述第二存储节点发送所述数据更新请求;
指示所述输入输出接口接收所述第二存储节点返回的数据更新成功消息;
所述输入输出接口,还用于再次向所述第二存储节点发送所述数据更新请求;接收所述第二存储节点返回的所述数据更新成功消息;
其中,所述第二存储节点在存储的所述第一数据被所述第一计算节点更新为所述第一版本的前一版本的数据之后,响应所述数据更新请求,并在所述第一数据被更新为所述第二更新数据后向所述第一计算节点返回所述数据更新成功消息。
16.一种分布式系统,其特征在于,所述分布式系统包括管理节点、第一计算节点、第二计算节点和多个存储节点,所述管理节点、所述第一计算节点、所述第二计算节点和所述多个存储节点间通信;
所述管理节点,用于生成用于指示第一时刻存储第一数据的至少两个存储节点的第一分区视图,以及生成用于指示第二时刻存储所述第一数据的至少两个存储节点的第二分区视图,其中,所述第一时刻与所述第二时刻不同;所述第一时刻存储所述第一数据的至少两个存储节点与所述第二时刻存储所述第一数据的至少两个存储节点不完全相同;
所述第一计算节点,用于根据第一分区视图使用第一更新数据对所述第一数据进行更新操作;
所述第二计算节点,用于在所述第一计算节点根据第一分区视图使用第一更新数据对所述第一数据进行更新操作时,接收第二分区视图,根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作。
17.如权利要求16所述的系统,其特征在于,所述第一分区视图指示的存储所述第一数据的至少两个存储节点和所述第二分区视图指示的存储所述第一数据的至少两个存储节点中均包含第一存储节点;
所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
与所述第一计算节点竞争所述第一存储节点的写权限;
在获得所述第一存储节点的写权限后,使用所述第二更新数据对所述第一存储节点中的所述第一数据进行更新操作。
18.如权利要求16所述的系统,其特征在于,所述第二分区视图指示的存储所述第一数据的至少两个存储节点包括第一存储节点以及第二存储节点;
所述第二计算节点用于:根据所述第二分区视图使用第二更新数据对所述第一数据进行更新操作,包括:
使用所述第二更新数据对所述第一存储节点存储的所述第一数据进行更新,形成所述第一存储节点中的第一版本的数据;
确定所述第二存储节点保存的所述第一数据对应的版本低于所述第一版本的前一版本;
在所述第二存储节点保存的所述第一数据被更新为所述第一版本的前一版本的数据之后,使用所述第二更新数据对所述第二存储节点中的所述第一版本的前一版本的数据进行更新,形成所述第二存储节点中的第一版本的数据。
CN201510644448.1A 2015-09-30 2015-09-30 一种分布式系统中数据处理方法、装置及系统 Active CN105391755B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510644448.1A CN105391755B (zh) 2015-09-30 2015-09-30 一种分布式系统中数据处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510644448.1A CN105391755B (zh) 2015-09-30 2015-09-30 一种分布式系统中数据处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105391755A CN105391755A (zh) 2016-03-09
CN105391755B true CN105391755B (zh) 2018-10-19

Family

ID=55423585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510644448.1A Active CN105391755B (zh) 2015-09-30 2015-09-30 一种分布式系统中数据处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105391755B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102384351B1 (ko) * 2018-05-09 2022-04-06 삼성에스디에스 주식회사 블록체인 기반 시스템에서의 블록 생성 방법
CN109655072B (zh) * 2018-10-31 2021-01-12 百度在线网络技术(北京)有限公司 地图的生成方法和装置
CN110069494A (zh) * 2019-03-12 2019-07-30 北京字节跳动网络技术有限公司 数据存储方法、装置、电子设备、和计算机可读存储介质
KR102331734B1 (ko) 2021-03-19 2021-12-01 쿠팡 주식회사 분산 시스템의 데이터 처리 방법 및 이를 위한 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7239605B2 (en) * 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
CN103518364A (zh) * 2013-03-19 2014-01-15 华为技术有限公司 分布式存储系统的数据更新方法及服务器
CN104283906A (zh) * 2013-07-02 2015-01-14 华为技术有限公司 分布式存储系统、集群节点及其区间管理方法
CN104902009A (zh) * 2015-04-27 2015-09-09 浙江大学 一种基于可擦除编码和链式备份的分布式存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693168B (zh) * 2011-03-22 2014-12-31 中兴通讯股份有限公司 一种数据备份恢复的方法、系统和服务节点

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7239605B2 (en) * 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
CN103518364A (zh) * 2013-03-19 2014-01-15 华为技术有限公司 分布式存储系统的数据更新方法及服务器
CN104283906A (zh) * 2013-07-02 2015-01-14 华为技术有限公司 分布式存储系统、集群节点及其区间管理方法
CN104902009A (zh) * 2015-04-27 2015-09-09 浙江大学 一种基于可擦除编码和链式备份的分布式存储系统

Also Published As

Publication number Publication date
CN105391755A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN105391755B (zh) 一种分布式系统中数据处理方法、装置及系统
CN108140028B (zh) 在具有分布式数据库系统的网络中提供数据库访问控制的方法和架构
CN105700907B (zh) 利用针对本地检查点的卸载程序模型
JP3779263B2 (ja) 共同作業システムのためのコンフリクトの解決
CN108351860A (zh) 低延迟的基于rdma的分布式存储装置
CN106302122B (zh) 虚拟物品管理方法及装置
CN106843749A (zh) 写入请求处理方法、装置及设备
CN110471688A (zh) 业务系统处理方法、装置、设备及存储介质
CN106899648A (zh) 一种数据处理方法和设备
CN106484311A (zh) 一种数据处理方法及装置
CN108334396A (zh) 一种数据处理方法和装置、资源组的创建方法和装置
US20120167105A1 (en) Determining the processing order of a plurality of events
CN108572876A (zh) 一种读写锁的实现方法及装置
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN111240806A (zh) 一种分布式容器镜像构建调度系统及方法
CN107368324A (zh) 一种组件升级方法、装置和系统
CN102413166B (zh) 分布式交易方法及其系统
CN109189431A (zh) 一种客户端升级方法、装置、设备及可读存储介质
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
JP4920567B2 (ja) 設備機器ネットワークシステムおよびデータアクセス制御方法
CN110413207A (zh) 降低存储系统的数据恢复时间的方法、设备和程序产品
US20230409386A1 (en) Automatically orchestrating a computerized workflow
JP2004295272A (ja) トランザクション制御方法
JPH07306795A (ja) 二重系計算機のデータベース等価処理装置
CN112596801B (zh) 事务处理方法、装置、设备、存储介质、数据库

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant