首页> 中国专利> 基于分区状态表和协调节点的副本同步方法

基于分区状态表和协调节点的副本同步方法

摘要

本发明公开了一种基于分区状态表和协调节点的副本同步方法,该方法通过这种授权的副本同步机制维护副本一致性,需要更新的副本所在的存储节点向协调节点发送同步请求,协调节点依据分区状态总表判断该存储节点是否符合执行副本同步操作的条件,授权给符合条件的存储节点执行副本同步操作。本发明的基于分区状态表和协调节点的副本同步方法极大地降低副本一致性的重复检测率、同步带宽占用率和不一致窗口的大小,避免多个副本的版本冲突问题,并增加副本同步的时效性。使分布式文件存储系统对外部请求的响应、副本一致性的检测更加迅速,提升系统的服务能力和最终一致性的效率。

著录项

  • 公开/公告号CN103428288A

    专利类型发明专利

  • 公开/公告日2013-12-04

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201310350158.7

  • 申请日2013-08-13

  • 分类号H04L29/08;G06F17/30;

  • 代理机构杭州天勤知识产权代理有限公司;

  • 代理人胡红娟

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2024-02-19 21:40:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-11

    专利实施许可合同备案的生效 IPC(主分类):H04L29/08 合同备案号:2018330000035 让与人:浙江大学 受让人:恒生电子股份有限公司 发明名称:基于分区状态表和协调节点的副本同步方法 申请公布日:20131204 授权公告日:20160309 许可种类:普通许可 备案日期:20180417 申请日:20130813

    专利实施许可合同备案的生效、变更及注销

  • 2016-03-09

    授权

    授权

  • 2013-12-25

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20130813

    实质审查的生效

  • 2013-12-04

    公开

    公开

说明书

技术领域

本发明涉及存储技术领域,具体涉及一种基于分区状态表和协调 节点的副本同步方法。

背景技术

传统的数据存储技术将一份数据存储在一个节点上,需要该数据 的用户都须到同一个节点上读取它。近年来,随着互联网中的用户对 资源的需求量日益增多,网络容易出现拥塞,而处理能力有限的节点 也会因为访问数量太大而宕机。且传统的数据存储技术在可扩展性, 高可用性等方面远远无法满足当今的数据存储需求,20世纪80年代, 分布式文件存储的概念被提出。

分布式文件存储是指利用分布式技术,通过计算机网络与节点相 连,将网络中不同节点上的存储设备通过分布式应用软件集合起来, 由存储系统统一管理,协同工作,共同对外提供数据存储和业务,向 用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和 资源管理。分布式文件存储系统通过分布式的架构,创建多份副本, 并将它们合理分布在多个服务器节点上,供用户存取,利用多台存储 服务器分担存储负荷以及处理访问请求,可以有效降低节点失效率, 减少用户响应时间。

通过分布式文件存储,创建多份副本,利用位置服务器定位存储 信息,不但提高了系统的可靠性、可用性和存取效率,可以将各类存 储设备结合使用,提供良好的可扩展的存储服务。相比传统的存储设 备,其在扩展性,安全性,可靠性等方面,都有了很大的提升。

然而,由于存在多个副本,会出现副本不同步的问题,即多个副 本不一致性,造成不同用户访问的结果不一致,导致分布式文件存储 系统可用性和可靠性降低。为了在分布式文件存储系统中保持副本的 一致性,提出了文件副本策略。一方面是维护副本的一致性,提高分 布式文件存储系统的可用性和可靠性。另一方面是提升系统的整体性 能。例如通过在存储服务器中增加副本,让更多的存储服务器提供服 务,增强系统的负载均衡和扩展能力。

近年来提出了很多的分布式架构下的文件存储副本管理方案。按 照分布式文件系统的架构不同,主要可以分为中心化架构存储系统的 副本管理策略和对称架构存储系统的副本管理策略。

(1)中心化架构存储系统的副本管理策略

在中心化架构的存储系统中主要采用模拟存储状态法、主副本法 来实现副本的一致性检测。模拟存储状态法在每个存储节点中维护文 件块列表,通过心跳与名字节点进行块信息交换,由名字节点控制副 本的同步和复制。主副本法在同一个文件的多个副本中挑选出一个基 准副本,所有的写操作都对主副本进行,并由主副本控制其他副本的 同步和复制。

(2)对称架构存储系统的副本管理策略

由于中心化架构存在明显的名字节点瓶颈问题,因此扩展性更好 的对称架构被提出并趋于主流。在对称架构存储系统中主要采用存储 节点间“点到点”的副本检测机制。顾名思义,在“点到点”的副本 检测机制中,存储节点通过请求其对等的远端节点上的副本校验码和 版本号,与本地副本进行比较,若本地副本与远端副本不一致且远端 副本版本较旧,则本地副本会将本地副本数据推送到对等节点,实现 “点到点”的副本同步。

传统的对称存储架构的副本管理策略存在以下不足:

1)重复检测量大。对于一个每个分区具有3个副本的对称架构 存储系统,要保证3个副本的一致性,需要3个存储节点间发送6次 消息进行检测。这种方式虽然易于实现,但占用大量带宽,降低了系 统的总体性能。

2)不一致窗口放大。对于单个存储节点来说,每一轮副本一致 性的检测都会消耗一定的时间,这个间隔时间会随着存储节点上的分 区数量的增多而增大,从而导致大量不一致的副本被延迟较久才能检 测,增大了系统的不一致窗口,使得最终一致性的效率较低,用户极 易访问到不一致的数据。

发明内容

针对现有技术的不足,本发明提供了基于分区状态表和协调节点 的副本同步方法,避免了重复检测,且不一致窗口小。

一种基于分区状态表和协调节点的副本同步方法,所述的副本同 步方法应用于对称架构的分布式文件存储系统,所述的分布式文件存 储系统包括多个存储节点和一个协调节点,所述的副本同步方法包括:

(1)初始化

1-1)每个存储节点上建立分区状态表,所述的分区状态表实时 记录相应存储节点的存储分区的分区号、分区状态和版本号,初始化 后分区状态和版本号为空;

所述的分区状态包括:“完全同步”,“最新”,“同步到远端” 和“更新到本地”四种状态;

1-2)所述的协调节点将所有分区状态表汇总并建立分区状态总 表;

(2)发送同步请求

若某存储节点中某一存储分区的数据被修改,且该存储分区无状 态冲突,则更新该存储分区的分区状态为“最新”,同时以该存储节 点为源节点向所述的协调节点发送当前存储分区的同步请求;

(3)请求返回指令

协调节点接收所述的同步请求,并根据分区状态总表,判断当前 存储分区是否满足副本同步操作的执行条件,并发送相应的返回指令, 具体为:

3-1)若不满足所述的执行条件,则协调节点维持当前存储分区 的分区状态不变,并向源节点返回“申请失败”;

3-2)若满足所述的执行条件,则协调节点更新前存储分区的分 区状态为“同步到远端”,并向源节点返回“申请成功”;

(4)执行同步操作

源节点接收所述的返回指令,并做出如下操作:

4-1)若返回指令为“申请失败”,则源节点保持当前存储分区 的分区状态不变,并等待副本同步;

4-2)若返回指令为“申请成功”,则源节点向当前存储分区的 所有副本所在的存储节点执行副本同步操作,使当前存储分区的所有 副本一致。

本发明的副本同步方法中,各存储节点分别维护一个分区状态总 表,记录了相应存储节点中所有存储分区的分区号、分区状态和版本 号;协调节点维护分区状态总表,记录了该系统中所有节点的所有分 区信息,包含分区号、分区状态和版本号。协调节点接收存储节点的 同步请求,依据分区状态总表判断该存储节点是否符合执行副本同步 操作的条件,授权给符合条件的存储节点,让该节点执行副本同步操 作;不符合条件的存储节点,则表明有其他副本节点先于源节点发送 了副本同步申请,源节点保持状态不变,并等待副本同步。这种授权 的副本同步机制可以有效减少无用复制的产生,降低同步带宽占用, 同时可以很好的对副本版本进行管理,避免多个副本的版本冲突问题, 并增加副本同步的时效性,减小不一致窗口。且副本同步操作是在存 储节点间进行的,并不经过协调节点,协调节点只负责授权根据请求 授权副本同步操作,可以有效的减轻协调节点的压力。

所述步骤(1)中的四种分区状态按照有限状态机原理转换。

通过有限状态机原理实现四种分区状态转换,能够限定四种分区 状态相互转换的顺序。

所述步骤(2)中的同步请求携带有当前存储分区的分区号、分 区状态和版本号。

同步请求中携带的信息便于协调节点进行处理。

所述步骤(3)中的执行条件为当前存储分区无状态冲突和版本 冲突。

所述的状态冲突通过状态的转换原理确定,若当前存储分区不满 足有限状态机的转换条件,则认为当前存储分区状态冲突。

所述的版本冲突根据以下方法判定:若当前存储分区的副本版本 不是所有副本中最新的,则认为当前存储分区版本冲突。

状态冲突的判断先于版本冲突,当不存在状态冲突才会进一步判 断是否存在版本冲突。状态冲突既可以根据存储节点上的状态分区表 判断也可以根据协调节点上分区状态总表判定。版本冲突在协调节点 上进行判定,通过比较所有存储节点上所存副本的版本号,判断试图 更新的版本是否为所有副本版本中的最新的,若不是最新则为版本冲 突。状态冲突一般是由于其他存储节点先于当前存储节点申请了同步 操作、且该同步操作未执行到当前存储节点引发的。这两个请求的时 间差即为不一致窗口。通过协调节点的同步设计架构,以及状态总表 的状态和版本控制,可以有效的减小不一致窗口。

作为优选,所述的副本同步操作依据NWR策略进行。

分布式系统的一致性(Consistency)、可用性(Availability)、分 区可容忍性(Tolerance of network Partition)无法同时满足,采用经典 的NWR策略,在以上三种性能中作出权衡。N表示需要N个数据备 份,W表示数据写入N个节点才算成功,R表示需要读取R个节点 的数据才能保证其中有一份是最新的。例如需要备份数为3份,写入 2份即表示数据成功写入,则必须读取2份数据才能保证其中有一份 是最新的。

所述步骤3-2)中:

副本同步操作前,源节点将分区状态表中当前存储分区的状态更 新为“同步到远端”;

副本同步操作过程中,各副本所在的存储节点将相应存储分区的 分区状态更新为“更新到本地”;

副本同步操作完成后,源存储节点和副本所在存储节点以及协调 节点将相应的存储分区的分区状态都更新为“完全同步”。

在执行副本同步操作前、后以及同步操作过程中,相关存储节点 根据操作实时更新相应的存储分区的分区状态。由于数据读写操作与 副本同步的实现相当独立,采用基于分区状态进行数据操作策略,针 对设定不同的分区状态设定不同读写策略,有效解决了状态转换过程 中发生的分区读写冲突问题,防止出现多版本混乱的问题,具体方法 如下:

1)副本所在存储分区的分区状态为“更新到本地”:

若为读取操作,则从该存储节点对应的副本同步操作对应的远端 节点(各副本所在的存储节点)中读取相应分区的数据,

若为修改操作,则该存储节点不再接受上传、删除等修改操作, 并将所述的修改操作转移给该存储节点对应的副本同步操作对应的 远端节点,对远端节点中相应存储分区进行修改操作;

2)副本所在存储分区的分区状态为“同步到远端”:

若为读取操作,则直接从当前存储节点读取数据,

若为修改操作,则等待当副本同步操作完成后,再将进行该修改 操作;

3)副本所在存储分区的分区状态为“最新”或“完全同步”状 态:

若为读写操作,则直接从当前存储节点读取数据,

若为修改操作,则立即执行该读写操作,且在该读写操作完成后, 将相应的存储分区状态更新为“最新”,并向协调节点发送该存储分 区的同步请求。

所述的分布式文件存储系统还包括一个热备节点,当前存储节点 发送的同步请求连续多次超时,则认为协调节点宕机,热备节点自动 接替协调节点接收同步请求并发送返回指令,在协调节点恢复后,再 将同步请求交由协调节点处理。

热备节点作为协调节点的备用节点,在协调节点宕机时,自动启 用,提高了系统的可靠性。

本发明提供的基于分区状态表和协调节点的副本同步方法,通过 授权的副本同步操作机制维护分布式文件存储系统中的副本一致性, 极大地降低副本一致性的重复检测率、同步带宽占用和不一致窗口, 从而降低副本同步操作对分布式文件存储系统的压力,使分布式文件 存储系统对外部请求的响应、副本一致性的检测更加迅速,提升系统 的服务能力和最终一致性的效率。

附图说明

图1为本实施例的具有协调节点的对称架构的分布式文件存储 系统的架构图;

图2为本实施例是基于分区状态表和协调节点的副本同步方法 的流程图;

图3为分区状态转换的有限状态机示意图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步说明。

本实施例中基于分区状态表和协调节点的副本同步方法的应用 环境为对称架构的分布式文件存储系统。如图1所示,该对称架构的 分布式文件存储系统包括多个对等的存储节点、一个协调节点和一个 热备节点。本施例中存储节点与协调节点的通信,以及存储节点之间 的通信均采用基于HTTP协议的同步通信协议。

本实施例的基于分区状态表和协调节点的副本同步方法,具体工 作流程如图2所示,包括:

(1)初始化

1-1)每个存储节点上建立分区状态表(本实施例中为哈希表), 实时记录相应存储节点的存储分区的分区号、分区状态和版本号,初 始化后分区状态和版本号为空;

1-2)所述的协调节点将所有分区状态表汇总并建立分区状态总 表;

分区状态有如下四种:

完全同步:表明所有副本保持完全同步的状态;

最新:表明副本最新,且并未与其他副本产生同步;

同步到远端:表明最新的副本,且该副本正在同步到远端副本;

更新到本地:表明旧的副本,且正在从远端接收最新的副本。

四种分区状态根据有限状态机原理进行转换,具体转换过程如图 3所示:

(a)当前存储分区的分区状态为“最新”:

若该存储分区被修改,则仍为“最新”状态;

若该分区正在向协调节点发送同步请求,且收到的返回信息为 “申请成功”时,则变换为“同步到远端”状态;

若接收到对源节点发送的副本同步操作,则变换为“更新到本地” 状态;

(b)当前存储分区的分区状态为“同步到远端”:

副本同步操作执行后,则变换为“完全同步”状态;

(c)当副本处于“更新到本地”状态:

副本同步操作执行完毕,则变换为“完全同步”状态;

(d)当前存储分区的分区状态为“完全同步”:

若当前存储分区的数据被修改,则变换为“最新”状态,

若当前分区接收到对源节点发送的副本同步操作,则变换为“更 新到本地”。

(2)发送同步请求

若某存储节点中某一存储分区的数据被修改,且该存储分区无状 态冲突,即该存储分区能够满足状态机原理的从当前分区状态转换至 “最新”,则更新该节点的分区状态表中的相应分区的分区状态为“最 新”,同时以该存储节点为源节点向协调节点发送当前分区的同步请 求;该同步请求携带有当前存储分区的分区号、分区状态和版本号。

(3)请求返回

协调节点接收同步请求,并根据分区状态总表,判断当前存储分 区的是否满足副本执行条件,向源节点发送返回指令:

3-1)先判断是否有状态冲突,若有状态冲突则向源节点返回“申 请失败”;

3-2)若无状态冲突,进一步判定是否有版本冲突,若无版本冲 突,则向源节点返回“申请成功”。

从存储节点的分区状态表或协调节点上的分区状态总表中获取 当前存储分区的分区状态,若当前存储分区的分区状态无法根据有限 状态机原理从当前的状态转换为“同步到远端”,则认为当前存储分 区状态冲突;

从协调节点上的分区状态总表中获取当前存储分区的所有副本 的版本号,若当前存储分区的副本版本不是所有副本中“最新”的, 则认为当前存储分区版本冲突;

(4)执行同步操作

源节点接收所述的返回指令,并做出如下操作:

4-1)若返回指令为“申请失败”,则源节点保持当前存储分区 的分区状态不变,并等待副本同步;

4-2)若返回指令为申请成功,则源节点将分区状态表中当前存 储分区的状态更新为“同步到远端”;并向当前存储分区的所有副本 所在的存储节点执行依据NWR策略的副本同步操作,使当前存储分 区的所有副本一致;各副本所在的存储节点接收到源节点发送的副本 同步操作后,将相应存储分区的分区状态更改为“更新到本地”;副 本同步操作完成后,源存储节点和副本所在存储节点以及协调节点将 相应分区的分区状态更新为“完全同步”。

为防止因用户读写操作引起的版本混乱问题,用户根据被访问副 本所在存储分区的分区状态进行数据操作:

1)副本所在存储分区的分区状态为“更新到本地”:

若为读取操作,则从该存储节点对应的副本同步操作对应的远端 节(发送副本同步操作的源节点)点中读取相应分区的数据,

若为修改操作,则该节点不再接受上传、删除等修改操作,并将 所述的修改操作转移给该节点对应的副本同步操作对应的远端节点, 对远端节点中相应分区进行修改操作;

2)副本所在分区的分区状态为“同步到远端”:

若为读取操作,则直接从当前节点读取数据,

若为修改操作,则等待当副本同步操作完成后,再将进行该修改 操作;

3)副本所在分区的分区状态为“最新”或“完全同步”状态:

若为读写操作,则直接从当前节点读取数据;

若为修改操作,则立即执行该读写操作,且在该读写操作完成后, 将相应的分区状态更新为“最新”,并向协调节点发送该分区的同步 请求。

所述的分布式文件存储系统还包括一个热备节点,当前存储节点 发送的同步请求连续多次超时,本实施例中为3次,则认为协调节点 宕机,热备节点自动接替协调节点接收同步请求并发送返回指令,在 协调节点恢复后,再将同步请求交由协调节点处理。若协调节点和热 备节点同时宕机,则存储节点会进行3次的重试操作,为了避免请求 拥塞,3次重试操作的等待时间逐渐递增,分别为10s,20s,30s。 若3次重试均失败,则存储节点重新启用“点到点”的副本同步策略, 并通过Gossip消息传播的方式最终启动整个存储集群的“点到点” 副本同步策略。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并 不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号