面向广域网的分布式文件系统副本因果一致的访问方法与流程

文档序号:23758935发布日期:2021-01-29 18:17阅读:来源:国知局

技术特征:
1.一种面向广域网的分布式文件系统副本因果一致的访问方法,其特征在于,包括:仅同步副本文件的索引结构与按需同步数据;通过追溯广域分布式环境中副本文件数据操作的依赖顺序来提供因果一致的偏序关系;通过最大时间戳偏差分析以及用户可定义的优先级来为数据操作提供稳定的全序关系;通过一种支持回滚的多版本索引区间树来存储副本文件的索引结构并且进行多版本并发控制;通过副本文件索引结构的多版本并发控制来处理逻辑时间中的并发冲突。2.根据权利要求1所述的方法,其特征在于,包括以下步骤:步骤1,当客户端向广域网上某个存储中心的副本提交数据写入请求时,存储网关节点会根据当前存储中心对于目标副本文件可见的所有写入请求为该请求赋予依赖关系;步骤2,当广域网上的某个存储中心的存储网关节点接收到其他存储中心广播的数据段更新操作时,会根据当前请求的依赖关系、时间戳偏差以及用户定义的副本空间当前节点nice值为所有接收到的数据写操作构建全序关系;步骤3,存储网关节点会根据预先构建的数据写操作全序关系为目标副本文件构建多版本索引区间树,并通过树的版本回滚来解决网络包乱序到达导致的并发冲突;步骤4,当客户端向广域网上某个存储中心的副本提交数据读取请求时,存储网关节点会根据当前存储中心中维护的多版本索引区间树提供的满足因果一致性的最大版本进行数据同步,最终返回满足因果一致性的副本文件数据。3.根据权利要求2所述的方法,其特征在于,所述步骤1中当客户端向广域网上某个存储中心的副本提交数据写入请求时,还包括:a1)由管理节点组织与分发的集群节点状态图进行存储中心内部的存储网关节点的相互发现;a2)存储中心的存储网关节点维护一组副本文件的版本向量,版本向量由加入当前副本空间的所有存储中心所维护的某个副本文件在各个中心的最后一个写入请求的客户提交版本组成,并且按照各个存储中心加入副本空间的时间顺序进行排列;a3)当接收到其他存储中心广播的写入请求时,当前存储中心的版本向量中写入请求来源存储中心的对应版本槽将进行推进更新;a4)当接收到由客户端提交的数据写入请求时,在请求提交时刻存储网关节点所维护的副本文件版本向量将作为该数据写入请求的依赖版本,并且版本向量中当前存储中心的版本槽将向前推进;a5)存储网关节点会向其他中心推送所有带有时间戳以及依赖版本向量的数据段更新请求。4.根据权利要求2所述的方法,其特征在于,所述步骤2中当广域网上的某个存储中心的存储网关节点接收到其他存储中心广播的数据段更新操作时,还包括:b1)当广域网上的某个存储中心的存储网关节点接收到其他存储中心广播的数据段更新操作时,会根据当前请求的依赖关系、时间戳偏差以及用户定义的副本空间当前节点nice值为所有接收到的数据写操作构建全序关系;
b2)存储网关节点会根据接收到的数据段更新操作中携带的依赖关系来构建因果一致的偏序关系,其偏序关系由一个比较版本向量的函数产生,对于两个来源于不同存储中心的数据段更新请求,比较函数会将这两个更新请求的版本向量中对方存储中心所对应的版本槽进行比较,如果两个版本槽的对比形成了一致的大小关系,那么这两个请求拥有因果顺序关系,如果两个版本槽的对比形成了不一致的大小关系,那么两个请求拥有并行关系;b3)当两个请求拥有并行关系,由存储网关节点根据集群节点状态图中请求来源的存储网关节点的最大时间偏差以及请求时间戳进行比较,其中最大时间偏差为存储网关节点到广域网ntp服务器最大延迟的一半,请求时间戳为请求来源存储中心接受客户端请求时的时间,如果两个请求时间戳的差绝对值大于两个请求来源中心的最大时间偏差的和,那么根据两个请求的时间戳形成大小关系;b4)当两个请求拥有并行关系且两个请求时间戳的差绝对值小于等于两个请求来源中心的最大时间偏差的和时,比较用户定义的副本空间在各个存储中心的nice值,并通过比较nice值形成大小关系,nice值在各个存储中心是唯一的;b5)当两个请求拥有并行关系并且产生了并行冲突,即由于网络延迟等原因未按全序关系到达目标存储网关节点,那么会对索引区间树进行版本回滚并且重新应用按全序关系排列的数据段更新请求。5.根据权利要求2所述的方法,其特征在于,所述步骤3中当广域网上的某个存储中心的存储网关节点根据数据段更新请求的全序关系更新多版本索引区间树时,还包括:c1)索引区间树基于b*树进行变种,其的叶子节点的key为数据段的区间头,其值为数据段的区间尾以及数据段源数据所处中心id号,非叶子结点key为其子节点数据段所处的区间,其值为由多个版本子树指针组成向量;c2)索引区间树的插入操作基于b*树,插入或更新一个数据段时,如果目标数据段区间被某一子树完全包含,则插入目标数据段至该子树;c3)如果待插入的目标数据段区间包含当前节点的多个子树的区间,则在当前子树根节点的版本指针向量尾部创建当前子树的根节点的副本,推进当前子树的根节点的版本,并向根节点方向更新最大版本号,删除区间被完全包含的子树的引用,并在值最小子树中执行目标数据段的插入操作,在值最大子树中执行目标数据段的删除操作;c4)如果待插入的目标数据段与当前叶子结点的区间有重叠部分或连续,则在当前叶子节点的版本指针向量尾部创建当前叶子结点的副本,如果目标数据段与叶子结点的值相等,则合并叶子结点与目标数据段的区间,如果目标数据段与当前叶子结点的值不相等,则分裂当前叶子结点为重叠部分与未重叠部分,并覆盖重叠部分的值;c5)多版本索引区间树的不支持数据段区间删除操作;c6)多版本索引区间树的区间查询操作基于b*树,当目标区间位于当前节点的多棵子树时,查询请求会被分裂为多个子区间查询,并最终返回一组区间索引向量的结果;c7)多版本索引区间树的版本回滚时,将会回滚当前节点的所有子树中的最大版本号大于目标版本的子树,如果子树的根节点的版本指针向量中拥有目标版本的版本槽,则使用版本槽中的副本替换该子树的根节点并递归操作。6.根据权利要求2所述的方法,其特征在于,所述步骤4中当客户端向广域网上某个存储中心的副本提交数据读取请求时,还包括:
d1)存储网关节点根据当前存储中心中维护的多版本索引区间树提供的满足因果一致性的最大版本进行数据同步;d2)为了保证多版本索引区间树能够提供满足因果一致性的索引,存储网关节点将读请求提交时的多版本区间树的根节点最大版本作为读取目标版本,并且会阻塞等待偏序关系中所有版本向量小于该版本的请求全部到达并应用;d3)从多版本区间树获得目标数据段的索引向量后,存储网关节点会向目标数据段所处中心发送目标数据区间与版本的同步请求,并最终返回因果一致的数据。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1