CN106020975A - 数据操作方法、装置和系统 - Google Patents
数据操作方法、装置和系统 Download PDFInfo
- Publication number
- CN106020975A CN106020975A CN201610319323.6A CN201610319323A CN106020975A CN 106020975 A CN106020975 A CN 106020975A CN 201610319323 A CN201610319323 A CN 201610319323A CN 106020975 A CN106020975 A CN 106020975A
- Authority
- CN
- China
- Prior art keywords
- memory node
- data
- node
- storage
- operation requests
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供一种数据操作方法、装置和系统,涉及计算机领域,能够解决现有技术在进行均衡之后无法保证数据操作正确性的问题。该方法包括:应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,控制节点向预定存储节点发送第一操作请求,第一操作请求包括以下任一:写请求、删除请求和截断请求;判断执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中B为发生数据均衡的存储节点的数量;若满足,则控制节点确定所述预定存储节点执行第一操作请求成功。本发明的实施例用于对存储节点的数据操作。
Description
技术领域
本发明涉及服务器集群领域,尤其涉及一种数据操作判断方法、装置和系统。
背景技术
(计算机)集群(英文全称:cluster)是指由一组独立的计算机构成的多计算机系统,该系统中的每台计算机(也叫节点机)作为集群的一个节点都具有等价的地位,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。有时候,计算机集群也是指多台计算机共同协作运行同一个应用。负载均衡(英文全称:load balance)是集群功能其中的一种。负载均衡是指将负载压力根据某种算法合理分配到集群中的其他台计算机上。
现有技术中的负载均衡是在集群部署完成后,先将位于不同节点的硬盘进行分组,在进行数据写入时,通过哈希算法选择待写入的硬盘分组(英文全称:partition,英文简称:Pt),对于位于不同节点的属于同一硬盘分组的硬盘,分为存储原始数据的硬盘和存储冗余数据的硬盘,其中,冗余数据为原始数据的校验和(checksum)。相应的,存储原始数据的硬盘数为原始数据份数(英文全称:original datacount,英文简称:ODC),存储冗余数据的硬盘数为冗余数据份数(英文全称:redundant data count,英文简称:RDC)。为了保证数据操作的正确性,现有技术要求:读成功份数R+写成功份数W必须大于原始数据份数N+冗余数据份数M,但是在发生负载均衡时,现有技术无法保证数据操作的正确性。具体如下。
参照图1所示,图中共8个硬盘,分别是硬盘1-8。初始状态下,1至6号硬盘属于同一硬盘分组,1-4号硬盘其版本号均为V1,其中硬盘1-4用于存储目标数据的原始数据,硬盘5、6用于存储目标数据中的冗余数据,其中,当1-4号硬盘上的任一个或者两个硬盘发生故障时,可以通过硬盘5、6存储的原始数据的校验和以及1-4号硬盘中未故障的硬盘存储的数据对故障硬盘的原始数据进行恢复。上述方案中,原始数据份数(4)+冗余数据份数(2)=6。另外,7号和8号硬盘为备份硬盘并且不属于该硬盘分组,不存储目标数据。当3号硬盘所在节点和4号硬盘所在节点发生故障时,为避免数据可靠性降低,启动负载数据均衡,7号和8号硬盘加入该硬盘分组,取代3号和4号硬盘。此时7号和8号硬盘通过负载数据均衡从该硬盘分组内的其他正常硬盘获得目标数据,并且7号和8号硬盘获得的目标数据版本号均为V1。对目标数据进行删除操作时,假设1号、2号、7号、8号硬盘的数据删除成功,5、6号硬盘因为硬盘忙碌而导致删除数据失败,此时删除成功份数为4。之后如果3号和4号硬盘恢复,重新加入该硬盘分组,取代7号和8号硬盘,此时进行读数据操作可以得到4份目标数据(即3号、4号、5号、6号硬盘的目标数据),即读成功次数为4。4+4>4+2,满足现有技术中的都区成功条件“读成功份数+写成功份数必须大于原始数据份数+冗余数据份数”。由于在发生负载均衡时,通过7号、8号硬盘替代了3号、4号硬盘,因此在进行删除操作时,删除了7号和8号的数据,而并未对故障的3号、4号硬盘进行处理,因此在3号、4号硬盘恢复并重新加入硬盘分组后,其存储有删除操作之前的数据,因此在进行读数据操作时,当满足上述读取数据成功条件时,读出已经删除的数据,而在未发生负载均衡时,对目标数据进行删除操作时,显然该数据操作结果是错误的。
发明内容
本发明的实施例提供一种数据操作方法、装置和系统,用于解决现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其中,控制节点具体用于执行如下操作:
首先,控制节点向预定存储节点发送第一操作请求,第一操作请求包括以下任一:写请求、删除请求和截断请求;之后,控制节点判断执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量;若满足,则控制节点确定预定存储节点执行第一操作请求成功。
在判断执行第一操作请求成功的存储节点时,以执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份作为判断条件,其中B为发生数据均衡的存储节点的数量,由于在数据操作时考虑了发生数据均衡的存储节点,因此解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
其中,所述预定存储节点为所述存储节点分组中的所有存储节点。此外该第一操作请求可以为用户终端发送的控制请求,因此在控制节点向预定存储节点发送第一操作请求首先要接收用户终端发送的第一操作请求。
第二方面,提供一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其中,控制节点具体用于执行如下操作:
首先,控制节点向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;其次,根据各个存储节点对第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于或等于M;若满足,则控制节点确定预定存储节点执行所述第二操作请求成功。
在上述方案中,在存储节点执行第二操作请求后,判断执行第二操作请求成功的存储节点的数量是否满足第一预定条件,当执行第二操作请求成功的存储节点的数量为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于M时,确定各个存储节点对第二操作请求执行成功,解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
其中,所述预定存储节点包括N个存储原始数据的存储节点。此外该第二操作请求可以为用户终端发送的控制请求,因此在控制节点向预定存储节点发送第二操作请求首先要接收用户终端发送的第二操作请求。
可选的,在执行第二操作请求失败时,预定存储节点包括:M个存储冗余数据的存储节点,和N个存储原始数据的存储节点中发生数据均衡的存储节点。
第三方面,提供一种控制节点,用于执行第一方面的数据操作方法,具体应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,包括:
请求单元,用于向预定存储节点发送第一操作请求,所述第一操作请求包括以下任一:写请求、删除请求和截断请求;
处理单元,用于判断执行所述请求单元发送的所述第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量;
若满足,则所述处理单元还用于确定所述预定存储节点执行所述第一操作请求成功。
在判断执行第一操作请求成功的存储节点时,以执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份作为判断条件,其中B为发生数据均衡的存储节点的数量,由于在数据操作时考虑了发生数据均衡的存储节点,因此解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
结合第三方面,在第一种可能的实现方式中,所述预定存储节点为所述存储节点分组中的所有存储节点。
结合第三方面,在第二种可能的实现方式中,还包括:接收单元,用于接收用户终端发送的第一操作请求。
需要说明的是,第三方面中的请求单元和接收单元可以为控制节点的通信单元,第三方面中的处理单元可以为单独设立的处理器,也可以集成在控制节点的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制节点的存储器中,由控制节点的某一个处理器调用并执行以上处理单元的功能。这里所述的处理器可以是一个中央处理器(central Processing unit,CPU),或者是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
第四方面,提供一种控制节点,用于执行第二方面的数据操作方法,具体应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,包括:
请求单元,用于向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;
处理单元,用于根据各个存储节点对所述请求单元发送的第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于或等于M;
若满足,则所述处理单元还用于确定所述预定存储节点执行所述第二操作请求成功。
在上述方案中,在存储节点执行第二操作请求后,判断执行第二操作请求成功的存储节点的数量是否满足第一预定条件,当执行第二操作请求成功的存储节点的数量为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于M时,确定各个存储节点对第二操作请求执行成功,解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
结合第四方面,在第一种可能的实现方式中,所述预定存储节点包括N个存储原始数据的存储节点。
结合第四方面,在第二种可能的实现方式中,还包括:接收单元,用于接收用户终端发送的第二操作请求。
结合第四方面,在第三种可能的实现方式中,在执行所述第二操作请求失败时,所述预定存储节点包括:M个存储冗余数据的存储节点,和所述N个存储原始数据的存储节点中发生数据均衡的存储节点。
需要说明的是,第四方面中的请求单元和接收单元可以为控制节点的通信单元,第四方面中的处理单元可以为单独设立的处理器,也可以集成在控制节点的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制节点的存储器中,由控制节点的某一个处理器调用并执行以上处理单元的功能。这里所述的处理器可以是一个中央处理器(central processingunit,CPU),或者是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
第五方面,提供一种数据存储系统,包括N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,还包括第三方面提供的任意一种控制节点,或者还包括第四方面提供的任意一种控制节点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种硬盘分组的结构示意图;
图2为本发明的实施例提供的一种数据存储系统的结构示意图;
图3为本发明的实施例提供一种数据操作方法的流程示意图;
图4为本发明的另一实施例提供一种数据操作方法的流程示意图;
图5为本发明的再一实施例提供一种数据操作方法的流程示意图;
图6为本发明的另一实施例提供的一种数据存储系统的结构示意图;
图7为本发明的又一实施例提供一种数据操作方法的流程示意图;
图8为本发明的实施例提供一种控制节点的结构示意图;
图9为本发明的另一实施例提供一种控制节点的结构示意图;
图10为本发明的又一实施例提供一种控制节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例描述的系统架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本发明的实施例提供的数据操作方法应用于如图2所示的数据存储系统,包括多个存储节点和与各个存储节点连接的控制节点,图示中以客户端代理(英文全称:client agent,简称:CA)作为控制节点进行说明,其中图1中示出8个存储节点,存储节点1-8。初始状态下,1至6号存储节点属于同一分组,分别存储着相同目标数据,其版本号均为V1,其中存储节点1-4用于存储原始数据,存储节点5、6用于存储冗余数据,原始数据份数(4)+冗余数据份数(2)=6,另外,7号和8号存储节点为备份并且不属于该分组,无目标数据;上述各个存储节点可以为硬盘(如磁盘固态硬盘)或者其他存储设备。
参照图3所示,本发明的实施例提供一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,具体包括以下步骤:
101、控制节点接收用户终端发送的第一操作请求。
其中,第一操作请求包括以下任一:写请求、删除请求和截断请求
102、控制节点向预定存储节点发送第一操作请求。
可选的,预定存储节点为所述硬盘分组中的所有存储节点。
103、控制节点判断执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量。
104、若满足,则控制节点确定预定存储节点执行第一操作请求成功。
本发明的实施例提供的数据操作方法,在判断执行第一操作请求成功的存储节点时,以执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份作为判断条件,其中B为发生数据均衡的存储节点的数量,由于在数据操作时考虑了发生数据均衡的存储节点,因此解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
参照图4所示,本发明的实施例提供一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,具体包括以下步骤:
201、控制节点接收用户终端发送的第二操作请求。
202、控制节点向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;
其中,在发生均衡操作之前,所述预定存储节点包括N个存储原始数据的存储节点。在发生均衡操作之后,在执行所述第二操作请求失败时,所述预定存储节点包括M个存储冗余数据的存储节点,和所述N个存储原始数据的存储节点中发生数据均衡的存储节点。
203、控制节点根据各个存储节点对第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于M。
204、若满足,则控制节点确定预定存储节点执行第二操作请求成功。
本发明的实施例提供的数据操作方法,在存储节点执行第二操作请求后,判断执行第二操作请求成功的存储节点的数量是否满足第一预定条件,当执行第二操作请求成功的存储节点的数量为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于M时,确定各个存储节点对第二操作请求执行成功,解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
以第一操作请求为写请求、第二操作请求为读请求、控制节点为CA、存储节点采用硬盘为例进行说明,参照图5所示,数据操作方法包括如下步骤:
当用户终端通过CA向硬盘分组写入数据时包括以下步骤:
301、CA接收用户终端发送的写请求。
302、CA向硬盘分组中的所有硬盘发送写请求。
以冗余配比N(4)+M(2)为例,参照图6所示,发生均衡前Pt硬盘分组中包括1-6号硬盘,其中1-4号硬盘用于存储原始数据,硬盘5、6用于存储冗余数据,7号硬盘用于为备份初始状态不属于该硬盘分组,当发生数据均衡时数据写入过程参照以下描述,示例性的如果6号硬盘故障,则将6号硬盘上的数据均衡至7号硬盘,此时7号硬盘替换6号硬盘成为Pt中的成员;在发生数据均衡时,6号硬盘为数据均衡的源盘,7号硬盘为数据均衡的目标盘;当6号硬盘恢复正常时,6号硬盘替换7号硬盘恢复为Pt中的成员,同时把6号硬盘故障过程中写入7号硬盘的数据搬回至6号硬盘,此时7号硬盘为数据均衡的源盘,6号硬盘为数据均衡的目标盘;在6号硬盘恢复后,如果CA收到有新的写请求,则不再向7号硬盘发送该新的写请求。
303、CA判断执行写请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的硬盘的数量。
304、若满足,则CA确定预定存储节点执行写请求成功。
示例性的,如上述图6所示,冗余配比为4+2、包含1份发生数据均衡的硬盘时,判断执行写请求成功的存储节点的数量是否满足Max(4,2+1+1)份,即写成功至少为4份时,认为向Pt分组写操作成功;那么,对于冗余配比为4+2、包含2份发生数据均衡的硬盘时,判断执行写请求成功的存储节点的数量是否满足Max(4,2+2+1)份,即写成功至少为2份时,认为向Pt分组写操作成功;其他情况与此类似不在举例说明。其中,第一操作请求为删除请求或截断请求时,数据操作判断方法与写请求相同,这里不再赘述。
当用户终端通过CA在存储节点分组读取数据时,参照图7所示,包括以下步骤:
401、CA接收用户终端发送的读请求。
402、CA向N个存储原始数据的硬盘发送读请求。
403、CA根据N个存储原始数据的硬盘中各个硬盘对读请求的响应判断执行所述读请求成功的硬盘的数量是否满足第一预定条件。
404、若满足,则CA确定N个存储原始数据的硬盘执行读请求成功。
其中,所述第一预定条件为读取最大版本号的硬盘的数量大于或等于N,或者读取对象不存在硬盘的份数大于M。需要说明的是,在没有发生数据均衡时,执行读请求成功的条件为:读取最大版本号的硬盘的数量大于或等于N,或者读取对象不存在硬盘的份数大于M,可以理解的是读取最大版本号的硬盘的数量大于或等于N时,CA向用户终端返回读取的数据;在读取对象不存在硬盘的份数大于M,CA向用户终端返回读取对象不存在,上述情况均为读操作成功。
在发生数据均衡时,执行读请求成功的条件为:读取最大版本号的硬盘的数量大于或等于N,或者读取对象不存在硬盘的份数大于M,可以理解的是读取最大版本号的硬盘的数量大于或等于N时,CA向用户终端返回读取的数据;在读取对象不存在硬盘的份数大于M,CA向用户终端返回读取对象不存在,上述情况均为读操作成功。
对于读取对象不存在硬盘,如果该读取对象不存在的硬盘存在数据均衡操作的源盘,则需要确定源盘是否也为读取对象不存在。
参照图2,其中以下将图2中的存储节点以硬盘为例进行说明,
在未发生数据均衡时,Pt中包含1-6号硬盘,其中1-4号硬盘为存储原始数据的硬盘,可以直接按照1-4号硬盘对读请求的响应判断是否读成功。
在发生数据均衡时,如果3、4号发生故障,数据均衡至7、8号硬盘,3、4号硬盘为源盘,7、8号硬盘为目标盘,数据均衡前版本号均为V1。数据均衡时做删除操作,若6号硬盘因流量控制删除操作失败,1、2、5、7、8号硬盘删除操作成功;则在根据上述读请求做读操作时,向1、2、7、8号硬盘发送读请求,此时读取对象不存在的盘为1、2号硬盘;由于7、8号硬盘的源盘3、4还没有读取,因此7、8硬盘不能作为有效的读取对象不存在硬盘,因此判断执行读请求失败,还需要继续执行以下步骤。
405、CA向预定硬盘发送读请求,其中,预定硬盘M个存储冗余数据的存储节点,和N个存储原始数据的存储节点中发生数据均衡的存储节点。
406、CA根据预定硬盘中各个硬盘对读请求的响应判断执行所述读请求成功的硬盘的数量是否满足第一预定条件。
407、若满足,则CA确定预定硬盘执行读请求成功。
其中这里的第一预定条件与步骤403中相同,具体不再赘述。以下举例说明,仍以图2为例,在发生数据均衡时,如果3、4号硬盘仍然处于故障状态,CA向5、6号硬盘发送读请求,判断最大版本号V1只有1份即6号硬盘(上述过程中6号硬盘因流量控制删除操作失败),读取对象不存在的硬盘为3份及1、2、5号硬盘(大于M),则判断读成功,CA向用户终端返回读取对象不存在。
在发生数据均衡时,如果3、4号硬盘恢复正常,CA向3、4、5、6号硬盘发送读请求,判断最大版本号V1仍然只有1份即6号硬盘(上述过程中6号硬盘因流量控制删除操作失败),此时7、8的源盘进行了读操作,3、4号硬盘返回读取对象不存在,所以7、8号硬盘也为有效的读取对象不存在的硬盘。读取对象不存在的硬盘为5份包括没有源盘1、2、5号硬盘以及存在源盘的7、8号硬盘(大于M),则判断读成功,CA向用户终端返回读取对象不存在。
参照图8所示,提供一种控制节点,用于实施上述如图3、5所示的控制节点执行的数据操作方法,具体应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,包括:
请求单元81,用于向预定存储节点发送第一操作请求,所述第一操作请求包括以下任一:写请求、删除请求和截断请求;
处理单元82,用于判断执行所述请求单元81发送的所述第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量;
若满足,则所述处理单元82还用于确定所述预定存储节点执行所述第一操作请求成功。
在判断执行第一操作请求成功的存储节点时,以执行第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份作为判断条件,其中B为发生数据均衡的存储节点的数量,由于在数据操作时考虑了发生数据均衡的存储节点,因此解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
可选的,预定存储节点为所述存储节点分组中的所有存储节点。参照图8所示,控制节点还包括:接收单元83,用于接收用户终端发送的第一操作请求。
需要说明的是,请求单元81和接收单元83可以为控制节点的通信单元,如收发机、收发端口、收发电路等等,处理单元82可以为单独设立的处理器,也可以集成在控制节点的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制节点的存储器中,由控制节点的某一个处理器调用并执行以上处理单元82的功能。这里所述的处理器可以是一个中央处理器(central processing unit,CPU),或者是特定集成电路(application specificintegrated crcuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
参照图9所示,提供一种控制节点,用于实施上述如图4、7所示的控制节点执行的数据操作方法,用于执行第二方面的数据操作方法,具体应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,包括:
请求单元91,用于向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;
处理单元92,用于根据各个存储节点对所述请求单元91发送的第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于或等于M;
若满足,则所述处理单元92还用于确定所述预定存储节点执行所述第二操作请求成功。
在上述方案中,在存储节点执行第二操作请求后,判断执行第二操作请求成功的存储节点的数量是否满足第一预定条件,当执行第二操作请求成功的存储节点的数量为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于M时,确定各个存储节点对第二操作请求执行成功,解决了现有技术在进行数据均衡之后无法保证数据操作正确性的问题。
可选的,预定存储节点包括N个存储原始数据的存储节点。如图9所示,控制节点还包括:接收单元93,用于接收用户终端发送的第二操作请求。此外,在执行所述第二操作请求失败时,所述预定存储节点包括:M个存储冗余数据的存储节点,和所述N个存储原始数据的存储节点中发生数据均衡的存储节点。
需要说明的是,请求单元91和接收单元93可以为控制节点的通信单元,处理单元92可以为单独设立的处理器,也可以集成在控制节点的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制节点的存储器中,由控制节点的某一个处理器调用并执行以上处理单元92的功能。这里所述的处理器可以是一个中央处理器(central processing unit,CPU),或者是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
其中,本发明提供的数据操作方法可由图10所示的控制节点101执行,该控制节点101位于数据存储系统,连接数据存储系统中的多个存储节点102,此外该控制节点101还与用户终端103连接,如图10所示,所述控制节点101可以包括:处理器1011、存储器1012、通信单元1013以及至少一个通信总线1014,通信总线1014用于实现这些装置之间的连接和相互通信;
处理器1011,可能是一个中央处理器(central processing unit,简称为CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
存储器1012,可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合。
通信单元1013可用于与外部设备之间进行数据交互,如:接收用户终端103发送的请求,并向存储节点102发送请求。
通信总线1014可以分为地址总线、数据总线、控制总线等,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component,PCI)总线或扩展工业标准体系结构(extendedindustry standard architecture,EISA)总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
具体的,通信单元1013用于执行上述实施例中请求单元81、接收单元83的功能,处理单元1011用于执行上述实施例中处理单元82的功能;或者通信单元1013用于执行上述实施例中请求单元91、接收单元93的功能,处理单元1011用于执行上述实施例中处理单元92的功能;具体参照上述设备以及方法实施例的描述这里不再赘述。
此外,还提供一种计算可读媒体(或介质),包括在被执行时进行以下操作的计算机可读指令:执行上述实施例中的方法的操作。
另外,还提供一种计算机程序产品,包括上述计算机可读介质。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,包括:
控制节点向预定存储节点发送第一操作请求,所述第一操作请求包括以下任一:写请求、删除请求和截断请求;
所述控制节点判断执行所述第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量;
若满足,则所述控制节点确定所述预定存储节点执行所述第一操作请求成功。
2.根据权利要求1所述的方法,其特征在于,所述预定存储节点为所述存储节点分组中的所有存储节点。
3.根据权利要求1所述的方法,其特征在于,所述控制节点向预定存储节点发送所述第一操作请求前,还包括:控制节点接收用户终端发送的第一操作请求。
4.一种数据操作方法,应用于对存储节点分组的数据存储系统进行操作控制的控制节点,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,包括:
控制节点向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;
根据各个存储节点对第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于或等于M;
若满足,则所述控制节点确定所述预定存储节点执行所述第二操作请求成功。
5.根据权利要求4所述的方法,其特征在于,所述预定存储节点包括N个存储原始数据的存储节点。
6.根据权利要求5所述的方法,其特征在于,控制节点向预定存储节点发送第二操作请求前,还包括:控制节点接收用户终端发送的第二操作请求。
7.根据权利要求4所述的方法,其特征在于,在执行所述第二操作请求失败时,所述预定存储节点包括:M个存储冗余数据的存储节点,和所述N个存储原始数据的存储节点中发生数据均衡的存储节点。
8.一种控制节点,应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,包括:
请求单元,用于向预定存储节点发送第一操作请求,所述第一操作请求包括以下任一:写请求、删除请求和截断请求;
处理单元,用于判断执行所述请求单元发送的所述第一操作请求成功的存储节点的数量是否满足Max(N,M+B+1)份,其中所述B为发生数据均衡的存储节点的数量;
若满足,则所述处理单元还用于确定所述预定存储节点执行所述第一操作请求成功。
9.根据权利要求8所述的控制节点,其特征在于,所述预定存储节点为所述存储节点分组中的所有存储节点。
10.根据权利要求8所述的控制节点,其特征在于,还包括:接收单元,用于接收用户终端发送的第一操作请求。
11.一种控制节点,应用于对存储节点分组的数据存储系统进行操作控制,其中所述数据存储系统中包含N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,包括:
请求单元,用于向预定存储节点发送第二操作请求,所述第二操作请求包括读请求;
处理单元,用于根据各个存储节点对所述请求单元发送的第二操作请求的响应判断执行所述第二操作请求成功的存储节点的数量是否满足第一预定条件,其中,所述第一预定条件为读取最大版本号的存储节点的数量大于或等于N,或者读取对象不存在存储节点的份数大于或等于M;
若满足,则所述处理单元还用于确定所述预定存储节点执行所述第二操作请求成功。
12.根据权利要求11所述的控制节点,其特征在于,所述预定存储节点包括N个存储原始数据的存储节点。
13.根据权利要求11所述的控制节点,其特征在于,还包括:接收单元,用于接收用户终端发送的第二操作请求。
14.根据权利要求11所述的控制节点,其特征在于,在执行所述第二操作请求失败时,所述预定存储节点包括:M个存储冗余数据的存储节点,和所述N个存储原始数据的存储节点中发生数据均衡的存储节点。
15.一种数据存储系统,包括N个存储原始数据的存储节点和M个存储冗余数据的存储节点,其特征在于,还包括如权利要求8-10任一项所述的控制节点,或者还包括如权利要求11-14任一项所述的控制节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319323.6A CN106020975B (zh) | 2016-05-13 | 2016-05-13 | 数据操作方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319323.6A CN106020975B (zh) | 2016-05-13 | 2016-05-13 | 数据操作方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020975A true CN106020975A (zh) | 2016-10-12 |
CN106020975B CN106020975B (zh) | 2020-01-21 |
Family
ID=57100797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610319323.6A Active CN106020975B (zh) | 2016-05-13 | 2016-05-13 | 数据操作方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020975B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595287A (zh) * | 2018-04-27 | 2018-09-28 | 新华三技术有限公司成都分公司 | 基于纠删码的数据截断方法及装置 |
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188157B1 (en) * | 2000-06-30 | 2007-03-06 | Hitachi, Ltd. | Continuous update of data in a data server system |
US8484431B1 (en) * | 2009-05-13 | 2013-07-09 | Symantec Corporation | Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational |
CN104486438A (zh) * | 2014-12-22 | 2015-04-01 | 华为技术有限公司 | 分布式存储系统的容灾方法及装置 |
CN104935481A (zh) * | 2015-06-24 | 2015-09-23 | 华中科技大学 | 一种分布式存储下基于冗余机制的数据恢复方法 |
CN105308574A (zh) * | 2013-06-28 | 2016-02-03 | 惠普发展公司,有限责任合伙企业 | 永久主存储器的容错 |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
-
2016
- 2016-05-13 CN CN201610319323.6A patent/CN106020975B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188157B1 (en) * | 2000-06-30 | 2007-03-06 | Hitachi, Ltd. | Continuous update of data in a data server system |
US8484431B1 (en) * | 2009-05-13 | 2013-07-09 | Symantec Corporation | Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational |
CN105308574A (zh) * | 2013-06-28 | 2016-02-03 | 惠普发展公司,有限责任合伙企业 | 永久主存储器的容错 |
CN104486438A (zh) * | 2014-12-22 | 2015-04-01 | 华为技术有限公司 | 分布式存储系统的容灾方法及装置 |
CN104935481A (zh) * | 2015-06-24 | 2015-09-23 | 华中科技大学 | 一种分布式存储下基于冗余机制的数据恢复方法 |
CN105357294A (zh) * | 2015-10-31 | 2016-02-24 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595287A (zh) * | 2018-04-27 | 2018-09-28 | 新华三技术有限公司成都分公司 | 基于纠删码的数据截断方法及装置 |
CN108595287B (zh) * | 2018-04-27 | 2021-11-05 | 新华三技术有限公司成都分公司 | 基于纠删码的数据截断方法及装置 |
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113515531B (zh) * | 2021-05-08 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106020975B (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844108B (zh) | 一种数据存储方法、服务器以及存储系统 | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
CN108153622A (zh) | 一种故障处理的方法、装置和设备 | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
CN110674539B (zh) | 一种硬盘保护设备、方法及系统 | |
US12066961B2 (en) | Method for improving reliability of storage system, and related apparatus | |
CN108512753B (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN104424052A (zh) | 一种自动冗余的分布式存储系统及方法 | |
CN110737924A (zh) | 一种数据保护的方法和设备 | |
CN108205573B (zh) | 一种数据分布式存储方法及系统 | |
CN107368485A (zh) | 一种数据库的管理方法及数据库系统 | |
CN108345515A (zh) | 存储方法和装置及其存储系统 | |
CN106445411A (zh) | 一种数据读取方法、装置及分布式存储系统 | |
CN114063883A (zh) | 存储数据方法、电子设备和计算机程序产品 | |
CN106020975A (zh) | 数据操作方法、装置和系统 | |
CN118606117A (zh) | 一种四控互联镜像系统、数据传输方法、设备和介质 | |
CN115914140B (zh) | 一种存储数据处理方法、装置、电子设备和存储介质 | |
EP3316114A1 (en) | Data reading and writing method and device | |
RU2720951C1 (ru) | Способ и распределенная компьютерная система для обработки данных | |
CN110413686A (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN112214466B (zh) | 分布式集群系统及数据写入方法、电子设备、存储装置 | |
CN107707665A (zh) | 一种网络存储方法、装置、系统及计算机可读存储介质 | |
CN108153787B (zh) | 一种数据库的容灾方法 | |
CN118964074A (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 |