基于多副本协同的写操作方法、系统及节点的制作方法

文档序号:7722982阅读:100来源:国知局
专利名称:基于多副本协同的写操作方法、系统及节点的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种基于多副本协同的写操作方法、系统及节点。
背景技术
近来随着云存储概念的广泛流行开来,对于传统专用的存储架构,例如,存储区域网络(Storage Area Network,简称为SAN),网络附力口存储(Network Area Storage,简称为NAS)等由于其成本昂贵,其架构不适合大范围部署;而采用普通的PC机或者通用服务器刀片而组织起来的可扩展的低成本的分布式存储方法受到了关注。这种分布式存储通常需要一个分布式文件系统将分散的存储资源统一管理起来,分布式文件系统通常将元数据和实际存储数据分开存储,为了保证系统可靠性,实际数据通常同时报存在多个节点上。
—个分布式文件系统的架构如图l所示。分布式文件系统中的节点分为两类,主服务器(Master Server)和数据服务器(DataServer)。 一个分布式文件系统由一个或多个主服务器和多个数据服务器组成,主服务器保存元数据信息,数据服务器存储数据。由于考虑到单个节点故障时系统数据的可靠性,一般一份数据会同时在多个数据服务器节点上存储,因而当客户端(Client)要向文件系统内写入数据时,就需要协同文件系统内拥有该数据副本的多个数据服务器节点同步完成数据的写入,保持每个数据节点拥有的数据副本是
一致的。图1中实线表示客户端和文件系统实际的数据流,虚线表示客户端和主服务器,以
及数据服务器和主服务器之间存在的信令控制流。 相关技术中,多副本协同写入流程如图2所示。 图2为根据相关技术的多副本协同的写操作流程示意图。如图2所示,该流程包括以下处理(步骤S201-步骤S213): 步骤S201 :客户端向主服务器发起写文件操作请求。 步骤S203 :主服务器根据自己保存的元数据信息获知需要在以下三个数据服务器节点上保存该文件,并从中选择一个作为Primary节点(主节点),其他两个作为secondary节点(即存储副本的节点,以下称为副本节点),将三个节点信息返回给客户端。
步骤S205 :客户端将要写入的数据分别发到存储三个副本的secondary节点上。也可能是客户端将要写入数据发送到Primary节点,由Primary节点将数据转发给两个secondary节点。 步骤S207 :客户端向Primary节点发起写命令。 步骤S209 :Primary节点在本地完成写操作后,通知每个Secondary节点执行同样的写操作。 步骤S211 :每个Secondary节点完成本地写操作之后,向Primary节点通知完成。
步骤S213 :Primary节点向客户端响应,整个写操作完成。 按照上面步骤执行多个副本协同写操作,需要每个副本节点都完成写操作整个写操作才完成,实际系统可能由于网络延迟等导致整个写操作耗时较长,实时性得不到保证。

发明内容
针对相关技术中原有多个节点同步写数据导致的整个写操作耗时较长、实时性不
能保证的问题,本发明提供了一种写操作方法,以解决上述问题至少之一。 根据本发明的一个方面,提供了一种基于多副本协同的写操作方法。 根据本发明的基于多副本协同的写操作方法包括主节点接收待写入的数据和副
本节点的地址信息;主节点在写入数据之后,根据地址信息将待写入的数据发送至副本节
点中预定数量的一部分副本节点以写入数据;主节点产生修改标识信息并发送至副本节点
中另一部分副本节点,以实现后续数据同步。 根据本发明的另一方面,提供了一种基于多副本协同的写操作系统。 根据本发明的基于多副本协同的写操作系统包括主节点,用于在写入数据之后,
根据接收到的副本节点的地址信息将待写入的数据发送至副本节点中预定数量的一部分
副本节点,并产生修改标识信息发送至副本节点中另一部分副本节点;一部分副本节点,用
于接收来自于主节点的待写入的数据并写入数据;另一部分副本节点,用于接收来自于主
节点的修改标识信息并实现后续数据同步。 根据本发明的又一方面,提供了一种节点。 根据本发明的节点,用于写入待写入的数据,上述节点包括接收单元,用于接收
待写入的数据和需要存储数据的副本的副本节点的地址信息;第一发送单元,用于在执行
写数据之后,根据地址信息将待写入的数据发送至副本节点中预定数量的一部分副本节点
以实现数据的写入;第二发送单元,用于将产生的修改标识信息发送至副本节点中另一部分副本节点以实现后续数据同步。 通过本发明,当主节点在本地执行写操作之后,将预定数量的一部分副本节点先完成数据写入,另一部分副本节点则标记该数据已经被更新,解决了相关技术中原有多个节点同步写数据导致的整个写操作耗时较长、实时性不能保证的问题,进而可以降低写操作时间、提高实时性。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发
明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 图1是根据相关技术的分布式文件系统架构的示意图; 图2是根据相关技术的多副本协同的写操作方法的流程图; 图3是根据本发明实施例的基于多副本协同的写操作方法的流程图; 图4是根据本发明实施例一的流程图; 图5是根据本发明实施例一的多副本协同写操作后续副本同步的流程 图6是根据本发明实施例二的流程图; 图7是根据本发明实施例二的多副本协同写操作后续副本同步的流程 图8是根据本发明实施例的基于多副本协同的写操作系统的结构框 图9是根据本发明实施例的节点的结构框图。
具体实施例方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的
情况下,本申请中的实施例及实施例中的特征可以相互组合。 根据本发明实施例,提供了一种基于多副本协同的写操作方法。 图3是根据本发明实施例的基于多副本协同的写操作方法的流程图。如图3所
示,根据本发明实施例的基于多副本协同的写操作方法包括以下处理(步骤S301-步骤
S305): 步骤S301 :主节点接收待写入的数据和副本节点的地址信息; 其中,上述待写入的数据和副本节点的地址信息可以来自于客户端。
步骤S303 :主节点在写入数据之后,根据副本节点的地址信息将待写入的数据发
送至副本节点中预定数量的一部分副本节点以写入数据; 其中,上面提到的一部分副本节点为真正需要执行数据写入的副本节点。因而,上 述一部分副本节点的数量可以根据预定策略确定。 步骤S305 :主节点产生修改标识信息并发送至副本节点中另一部分副本节点,以 实现后续数据同步。 通过该实施例,在执行写操作过程中,无需每个副本节点都完成真正数据写入操 作,预定数量(应该小于所有副本节点总数)的副本节点可以将数据先执行写操作,另一部 分副本节点存储修改标识信息。按照上面步骤,可以减小写操作耗时,提高系统功能工作效率。
优选地,在执行步骤S301之前,还可以包括以下处理
(1)服务器接收来自于客户端发起的写数据请求; (2)服务器根据预先存储的元数据信息确定需要保存待写入的数据的全部节点;
(3)服务器从全部节点中确定主节点。 通过该方案,可以在存储数据的节点中选取主节点,确定副本节点,以执行后续操 作。 优选地,步骤S303中预定数量可以为0个,S卩,主节点在写入数据之后,主节点不
将待写入的数据发送至全部副本节点,而是将产生的修改标识信息以文本的形式发送至全 部副本节点。 因而,在基于多副本协同的写操作过程中,根据上述过程,耗时较短,实时性较高, 但是,由于只有主节点执行数据的写入,因而可靠性存在一定风险,因此需要用户根据实际 情况确定上述预定数量大小。 优选地,步骤S303中预定数量可以为至少1个,例如,预定数量为1个,即主节点 在写入数据之后,主节点不将待写入的数据发送至全部副本节点,而是将待写入的数据发 送至一个副本节点,将产生的修改标识信息以文本的形式发送至副本节点中除了这个副本 节点以外的其他副本节点。 因而,上述过程耗时较短,且相对于预定数量为l个的方案而言,可靠性更高。因 此,在实时性与可靠性冲突的情况下,应当根据实际情况确定上述预定数量的大小。例如, 对于实时性要求较高的系统,可以设定较小的预定数量,对于可靠性要求较高的系统,可以 适当增大预定数量。
5
优选地,在执行步骤S305之后,还可以包括以下处理
(1)另一部分副本节点获取修改数据的请求消息; 在具体实施过程中,另一部分副本节点中可能预先设置了请求获取修改数据的指 令,在查询到存储的修改标识信息之后,会请求获取所修改的数据,例如,每隔10分钟,会 查询存储的修改标识信息,之后主动发起获取修改数据的指令。 (2)另一部分副本节点将副本节点中已完成修改的节点所修改的数据下载至本 地,在本地完成数据修改过程; (3)另一部分副本节点清除修改标识信息。 在具体实施过程中,在上述请求消息触发的情况下,另一部分副本节点将数据同 步到本地执行真正的数据写入,即从已经完成修改的节点将修改后的数据下拉到本地,在 本地完成数据修改,然后再清除掉修改标记信息。 因而可知,副本节点之间的同步只需要依赖刚才打上的修改标记进行,不需要客 户端和主服务器的参与。因而有效提高了系统工作效率,节省了多副本协同的写操作耗时。
优选地,上述写操作方法适用于分布式文件系统、内容分发网络(Content Delivery Network,简称为CDN)系统、分布式数据库系统、或云存储系统。
图4是根据本发明实施例一的流程图。如图4所示,该过程包括以下处理(步骤 S401-步骤S411): 步骤S401 :客户端向主服务器发起写文件操作请求。 步骤S403 :主服务器根据自己保存的元数据信息获知图中三个数据服务器 节点上需要保存该文件,并从中选择一个作为Primary节点(主节点),其他两个作为 secondary节点(副本节点),将三个节点信息返回给客户端。 步骤S405 :客户端将要写入的数据和写操作涉及到的另外两个secondary节点 (副本节点)信息发到Primary节点(主节点)。 步骤S407 :Primary节点在本地执行写操作,并将本地修改的情况以日志方式,通 知写操作涉及到的secondary节点。 步骤S409 :每个Secondary节点接收到来自Primary的修改信息后,在本地记录
标记该内容已经被修改的,并向Primary应答。 步骤S411 :Primary节点向客户端响应,整个写操作完成。 上述实施例采取的方案,相当于设置预定数量为O个,S卩,主节点不将待写入的数 据发送至任何副本节点执行数据写入,而是主节点产生修改标识信息并发送至全部副本节 点以实现后续数据同步的方案,系统耗时较小,实时性得以保证。 在具体实施过程中,Secondary节点未能真正将数据更改之前,如果接收到该更改
数据的访问请求,则可能立即触发从已经完成修改的节点将修改后的数据下拉到本地,同
步完成之后本地记录的修改标记被清除。上述过程具体可以参见图5。 如图5所示,主节点已经完成了数据的写入,两个副本节点均没有写入数据,在有
请求消息的触发情况下,两个副本节点均从主节点将所修改的数据下拉到本地。同步完成 之后,清除本地记录的修改标记。 图6是根据本发明实施例二的流程图。如图6所示,该过程包括以下处理(步骤 S601-步骤S613):
步骤S601 :客户端向主服务器发起写文件操作请求。 步骤S603 :主服务器根据自己保存的元数据信息获知以下三个数据服务器节点 上需要保存该文件,并从中选择一个作为Primary,其他两个作为secondary,将三个节点 信息返回给客户端。 步骤S605 :客户端将要写入的数据和写操作涉及到的另外两个secondary节点信 息发到Primary节点。 步骤S607 :Primary节点在本地执行写操作,同时将数据发给一个secondary节 点。 步骤S609 :Primary节点通知发送过数据的secondary节点按照相同的顺序写入 数据块,后者接到写命令后执行本地写入,并完成后应答Primary。 步骤S611 :Primary节点以日志方式通知其他secondary节点,后者在本地对应该 被修改的文件记录修改标记。 步骤S613 :Primary节点向客户端响应,整个写操作完成。 上述实施例采取的方案,相当于设置预定数量为1个的方案,即,主节点将待写入 的数据发送至一个副本节点执行数据写入,主节点产生修改标识信息并发送至其他副本节 点以实现后续数据同步。相对于图5中描述的方案而言,在可靠性与实时性之间进行了平 衡,比图5中描述的方案的可靠性更高。 在具体实施过程中,图6中的一个Secondary节点未能真正将数据更改之前,如果 接收到该更改数据的访问请求,则可能立即触发从已经完成修改的节点将修改后的数据下 拉到本地,同步完成之后本地记录的修改标记被清除。上述过程具体可以参见图7。
如图7所示,主节点和一个副本节点已经完成了数据的写入,还有一个副本节点 没有写入数据,在有请求消息的触发情况下,该副本节点均从主节点或者已经完成了数据 的写入的副本节点将所修改的数据下拉到本地。同步完成之后,清除本地记录的修改标记。
根据本发明实施例,还提供了一种基于多副本协同的写操作系统。
图8是根据本发明实施例的基于多副本协同的写操作系统的结构框图。如图8所 示,根据本发明实施例的基于多副本协同的写操作系统包括主节点80和需要存储数据副 本的副本节点82。 主节点80,用于在写入数据之后,根据接收到的副本节点的地址信息将待写入的 数据发送至副本节点中预定数量的一部分副本节点,并产生修改标识信息发送至副本节点 中另一部分副本节点;
副本节点82包括 —部分副本节点820,用于接收来自于主节点的待写入的数据并写入数据;
另一部分副本节点824,用于接收来自于主节点的修改标识信息并实现后续数据 同步。 通过该系统,在执行写操作过程中,无需系统中每个副本节点都完成写操作,预定 数量的一部分副本节点可以将数据先执行写操作,另一部分副本节点存储修改标识信息。 按照上面步骤,可以减小写操作耗时,提高系统功能工作效率。 优选地,另一部分副本节点824,还用于获取修改数据的请求消息,将已完成修改 的节点所修改的数据下载至本地,并清除修改标识信息。
根据本发明实施例,还提供了 一种节点。 图9是根据本发明实施例的节点的结构框图。如图9所示,节点包括接收单元 90、第一发送单元92、第二发送单元94。 接收单元90,用于接收待写入的数据和需要存储数据的副本的副本节点的地址信 息; 第一发送单元92,用于在执行写数据之后,根据地址信息将待写入的数据发送至 副本节点中预定数量的一部分副本节点以实现数据的写入; 第二发送单元94,用于将产生的修改标识信息发送至副本节点中另一部分副本节 点以实现后续数据同步。 通过该节点(相当于前面提到的主节点),在执行写操作过程中,该节点无需通知 把待写入的数据发送至每个副本节点以完成写操作,只要发送至预定数量的一部分副本节 点以执行写操作,并将产生的修改标识信息发送至另一部分副本节点(即前面提到的另一 部分副本节点)以进行存储。按照上面步骤,可以减小多副本协同的写操作耗时,提高系统 的工作效率。 综上所述,借助本发明提供的上述实施例,在执行多副本协同的写操作过程中,不 需要每个副本节点都完成写操作过程,整个写入操作才得以完成,而是有零个、一个或至少 两个(具体数目根据情况而定)副本节点先完成数据写入,其他副本节点则标记该数据已 经被更新,之后已经完成数据写入的节点与标记数据被更新的节点之间执行同步流程,将 数据同步到本地执行真正的数据写入,然后再去掉修改标记,副本节点之间的同步只需要 依赖刚才打上的修改标记进行,不需要客户端和主服务器的参与。因而可以减小多副本协 同的写操作耗时,提高系统的工作效率。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种基于多副本协同的写操作方法,其特征在于,所述方法包括主节点接收待写入的数据和所述副本节点的地址信息;所述主节点在写入所述数据之后,根据所述地址信息将所述待写入的数据发送至所述副本节点中预定数量的一部分副本节点以写入所述数据;所述主节点产生修改标识信息并发送至所述副本节点中另一部分副本节点,以实现后续数据同步。
2. 根据权利要求1所述的方法,其特征在于,在所述主节点接收来自于客户端待写入 的数据和所述副本节点的地址信息之前,所述方法还包括服务器接收来自于所述客户端发起的写数据请求;所述服务器根据预先存储的元数据信息确定需要保存所述待写入的数据的全部节点;所述服务器从所述全部节点中确定所述主节点。
3. 根据权利要求1所述的方法,其特征在于,所述实现后续数据同步包括 所述另一部分副本节点获取修改数据的请求消息;所述另一部分副本节点将已完成修改的节点所修改的数据下载至本地; 所述另一部分副本节点清除所述修改标识信息。
4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述预定数量为零个。
5. 根据权利要求1至3中任一项所述的方法,其特征在于,所述预定数量为至少一个。
6. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法适用于分布式文件 系统、内容分发网络系统、分布式数据库系统、或者云存储系统。
7. —种基于多副本协同的写操作系统,其特征在于,包括主节点,用于在写入所述数据之后,根据接收到的副本节点的地址信息将所述待写入 的数据发送至所述副本节点中预定数量的一部分副本节点,并产生修改标识信息发送至所 述副本节点中另一部分副本节点;所述一部分副本节点,用于接收来自于所述主节点的所述待写入的数据并写入所述数据;所述另一部分副本节点,用于接收来自于所述主节点的修改标识信息并实现后续数据 同步。
8. 根据权利要求7所述的系统,其特征在于,所述另一部分副本节点,还用于获取修改数据的请求消息,将已完成修改的节点所修 改的数据下载至本地,并清除所述修改标识信息。
9. 一种节点,用于写入待写入的数据,其特征在于,所述节点包括 接收单元,用于接收所述待写入的数据和需要存储所述数据的副本的副本节点的地址信息;第一发送单元,用于在执行写数据之后,根据所述地址信息将所述待写入的数据发送 至所述副本节点中预定数量的一部分副本节点以实现数据的写入;第二发送单元,用于将产生的修改标识信息发送至所述副本节点中另一部分副本节点 以实现后续数据同步。
全文摘要
本发明公开了一种基于多副本协同的写操作方法、系统及节点。在上述方法中,主节点接收待写入的数据和副本节点的地址信息;主节点在写入数据之后,根据地址信息将待写入的数据发送至副本节点中预定数量的一部分副本节点以写入数据;主节点产生修改标识信息并发送至副本节点中另一部分副本节点,以实现后续数据同步。根据本发明提供的技术方案,可以减小多副本协同的写操作耗时,提高系统的工作效率。
文档编号H04L29/08GK101741911SQ20091026132
公开日2010年6月16日 申请日期2009年12月18日 优先权日2009年12月18日
发明者周扬, 王洪斌, 赵培, 钱静静 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1