一种文件同步中向量时钟的实现方法及系统技术方案

技术编号:8961388 阅读:156 留言:0更新日期:2013-07-25 20:36
本发明专利技术提供一种文件同步系统中向量时钟的实现方法及系统,该方法包括:步骤1,当用户在两个终端上对文件进行操作时,该两个终端进行分量版本自增操作,调整各自的向量时钟;步骤2,两个终端中的一个终端向另一个终端发送数据同步请求,该另一终端响应所述同步请求,获取本地同步目录文件元数据信息后发送给该一个终端;步骤3,所述一个终端收到另一终端的本地同步目录文件元数据信息后,根据所述另一终端的本地同步目录文件元数据信息和自身的本地同步目录文件元数据信息进行向量时钟比较操作,根据比较结果执行同步操作;步骤4,所述两个终端执行同步操作后进行向量时钟合并操作,分别获得新的向量时钟。以此方式实现所有终端数据同步。

【技术实现步骤摘要】

本专利技术涉及计算机技术的通信领域以及面向云存储的文件系统领域,尤其是涉及一种文件同步中向量时钟的实现方法及系统
技术介绍
在云存储的客户端与客户端,客户端与服务器之间要数据版本一致,常需要数据同步来实现。向量时钟可用于数据同步领域,在η个并发进程构成的分布式系统中,每个事件的逻辑时钟均由一个η维向量CUL...!!]构成,其中第i维(分量)对应于进程i的逻辑时钟。时钟向量更新规则:初始时,所有的时钟都为零;进程i在每个事件后都为时钟向量CUL...!!]的分量i加一个步长;每个进程发送一个消息时,附带其整个向量时钟一起发送;每收到一个消息后,每个进程都应调整其相应的向量时钟CUL...!!],并遵循如下规则:I彡k彡n,Ck[k]:=πι&Χ((;ω,CjM),其中Ci只能递增,Cj为第j个进程的逻辑时钟。通过比较两个消息或事件的向量时钟可以判断消息或事件发生的先后或者检测消息或者事件冲突(即同时发生)。在多客户端数据同步中应用向量时钟需要解决两个问题:(I)如何标识客户端;和(2)如何具体的表不一个向量时钟。传统的向量时钟表不方式Ci[I…η]直接应用存在如下局限性:首先,需要预先知道时钟分量的个数η,对于数据同步的动态环境(同步设备数目会变化)是比较困难的;其次,基于索引的时钟分量需要某种机制给同步设备分配对应的索引号,索引的协商分配方式和维护开销也会给系统带来一定的复杂性。本专利技术将提供一种向量时钟的实现方法,解决上述两个问题。
技术实现思路
为了避免需要事先确定客户端数量并为之分配时钟分量,保证多客户端环境下更有效的标识客户端,克服客户端的标识协商和维护带来的系统复杂性,本专利技术提供了一种文件同步中向量时钟的实现方法及系统,其允许随着客户端的加入,动态调整时钟分量的个数,通过标准的UUID来完成客户端的标识,协助用户完成向量时钟的管理和操纵,有助于版本处理和冲突检测。为实现上述目的,本专利技术提供了一种文件同步中向量时钟的实现方法,该方法包括:步骤1,当用户在两个终端上对文件进行操作时,该两个终端进行分量版本自增操作,调整各自的向量时钟;步骤2,两个终端中的一个终端向另一个终端发送数据同步请求,该另一终端响应所述同步请求,获取本地同步目录文件元数据信息后发送给该一个终端;步骤3,所述一个终端收到另一终端的本地同步目录文件元数据信息后,根据所述另一终端的本地同步目录文件元数据信息和自身的本地同步目录文件元数据信息进行向量时钟比较操作,根据比较结果执行同步操作;步骤4,所述两个终端执行同步操作后进行向量时钟合并操作,分别获得新的向量时钟。所述向量时钟是由时钟分量组成的集合,每个时钟分量包括通用唯一识别码UUID和版本号,其中UUID用于唯一的标识客户端,遵循开放软件基金会标准,该版本号简称版本。进一步的,所述步骤I包括:步骤11,每个终端各自输入需要调整的向量时钟的时钟分量和版本增量; 步骤12,若所述每个终端的向量时钟中存在与所述需要调整的向量时钟的相同的时钟分量,则调整该终端的向量时钟的版本为当前版本与输入的版本增量之和;否则,先添加所述需要调整的时钟分量,分量的识别码为所述需要调整时钟分量的唯一识别码,版本号为所述需要调整该终端的向量时钟的版本为输入的版本增量。进一步的,所述步骤3包括:步骤31,若VCa中任意一时钟分量的版本均小于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,则比较结果为VCa小于VCb;若VCa中任意一时钟分量的版本均等于VCb对应时钟分量的版本,则比较结果为VCa 等于 VCb ;若VCa中任意一时钟分量的版本均大于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa大于VCb ;若VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa与VCb冲突;步骤32,若VCa小于VCb,说明在所述另一个终端的文件上有操作,同步操作为:更新所述一个终端的相应文件;若VCa等于VCb,说明在所述两个终端的文件上均无操作,不进行同步操作;若VCa大于VCb,说明在所述一个终端的文件上有修改操作,同步操作为:更新所述另一个终端的相应文件;若VCa与VCb冲突,说明在所述两个终端的文件上均有操作,更新所述两个终端的相应文件;其中VCa为所述一个终端的向量时钟,VCb为所述另一终端的向量时钟。进一步的,所述步骤4包括:步骤41,将所述两个向量时钟的时钟分量对应的通用唯一识别码的并集作为所述新的向量时钟的时钟分量对应的通 用唯一识别码;步骤42,将所述新的向量时钟的任一时钟分量的版本设置为所述两个向量时钟中对应时钟分量的版本中的最大值,若某向量时钟不存在对应时钟分量,则设置新向量时钟中对应时钟分量的版本为另一存在的对应时钟分量的版本。进一步的,文件同步操作在多个终端上,该多个终端由上述两个终端对组成。为实现上述目的,本专利技术还提供了一种文件同步中向量时钟的实现系统,该系统包括:向量时钟自增模块,当用户在两个终端上对文件进行操作时,该两个终端进行分量版本自增操作,调整各自的向量时钟;同步请求模块,两个终端中的一个终端向另一个终端发送数据同步请求,该另一终端响应所述同步请求,获取本地同步目录文件元数据信息后发送给该一个终端;向量时钟比较模块,所述一个终端收到另一终端的本地同步目录文件元数据信息后,根据所述另一终端的本地同步目录文件元数据信息和自身的本地同步目录文件元数据信息进行向量时钟比较操作,根据比较结果执行同步操作;向量时钟合并模块,所述两个终端执行同步操作后进行向量时钟合并操作,分别获得新的向量时钟;所述向量时钟是由时钟分量组成的集合,每个时钟分量包括通用唯一识别码UUID和版本号,其中UUID用于唯一的标识客户端,遵循开放软件基金会标准,该版本号简称版本。进一步的所述向量时钟自增模块包括:输入模块,每个终端各自输入需要调整的向量时钟的时钟分量和版本增量;调整模块,若所述每个终端的向量时钟中存在与所述需要调整的向量时钟的相同的时钟分量,则调整该终端的 向量时钟的版本为当前版本与输入的版本增量之和;否则,先添加所述需要调整的时钟分量,分量的识别码为所述需要调整时钟分量的唯一识别码,版本号为所述需要调整该终端的向量时钟的版本为输入的版本增量。进一步的所述向量时钟比较模块包括:比较模块,若VCa中任意一时钟分量的版本均小于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,则比较结果为VCa小于VCb;若VCa中任意一时钟分量的版本均等于VCb对应时钟分量的版本,则比较结果为VCa 等于 VCb ;若VCa中任意一时钟分量的版本均大于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa大于VCb ;若VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa与VCb冲突;同步模块,若VCa小于VCb,说明本文档来自技高网...

【技术保护点】
一种文件同步中向量时钟的实现方法,其特征在于,包括:步骤1,当用户在两在两个终端上对文件进行操作时,该两个终端进行分量版本自增操作,调整各自的向量时钟;步骤2,两个终端中的一个终端向另一个终端发送数据同步请求,该另一终端响应所述同步请求,获取本地同步目录文件元数据信息后发送给该一个终端;步骤3,所述一个终端收到另一终端的本地同步目录文件元数据信息后,根据所述另一终端的本地同步目录文件元数据信息和自身的本地同步目录文件元数据信息进行向量时钟比较操作,根据比较结果执行同步操作;步骤4,所述两个终端执行同步操作后进行向量时钟合并操作,分别获得新的向量时钟;所述向量时钟是由时钟分量组成的集合,每个时钟分量包括通用唯一识别码UUID和版本号,其中UUID用于唯一的标识客户端,遵循开放软件基金会标准,该版本号简称版本。

【技术特征摘要】
1.一种文件同步中向量时钟的实现方法,其特征在于,包括: 步骤1,当用户在两在两个终端上对文件进行操作时,该两个终端进行分量版本自增操作,调整各自的向量时钟; 步骤2,两个终端中的一个终端向另一个终端发送数据同步请求,该另一终端响应所述同步请求,获取本地同步目录文件元数据信息后发送给该一个终端; 步骤3,所述一个终端收到另一终端的本地同步目录文件元数据信息后,根据所述另一终端的本地同步目录文件元数据信息和自身的本地同步目录文件元数据信息进行向量时钟比较操作,根据比较结果执行同步操作; 步骤4,所述两个终端执行同步操作后进行向量时钟合并操作,分别获得新的向量时钟; 所述向量时钟是由时钟分量组成的集合,每个时钟分量包括通用唯一识别码UUID和版本号,其中UUID用于唯一的标识客户端,遵循开放软件基金会标准,该版本号简称版本。2.如权利要求1所述的文件同步中向量时钟的实现方法,其特征在于,所述步骤I包括: 步骤11,每个终端各自输入需要调整的向量时钟的时钟分量和版本增量; 步骤12,若所述每个终端的向量时钟中存在与所述需要调整的向量时钟的相同的时钟分量,则调整该终端的向量时钟的版本为当前版本与输入的版本增量之和;否则,先添加所述需要调整的向量时钟的时钟分量,分量的识别码为所述需要调整的向量时钟分量的识别码,版本号为所述需要调整该终端的向量时钟的版本为输入的版本增量。3.如权利要求1所述的文件同步中向量时钟的实现方法,其特征在于,所述步骤3包括: 步骤31,若VCa中任意一时钟分量的版本均小于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,则比较结果为VCa小于VCb ;若VCa中任意一时钟分量的版本均等于VCb对应时钟分量的版本,则比较结果为VCa等于 VCb ; 若VCa中任意一时钟分量的版本均大于等于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa大于VCb ; 若VCa中存在至少一时钟分量的版本小于VCb对应时钟分量的版本,且VCa中存在至少一时钟分量的版本大于VCb对应时钟分量的版本,则比较结果为VCa与VCb冲突; 步骤32,若VCa小于VCb,说明在所述另一个终端的文件上有操作,同步操作为:更新所述一个终端的相应文件; 若VCa等于vcb,说明在所述两个终端的文件上均无操作,不进行同步操作; 若VCa大于vcb,说明在所述一个终端的文件上有修改操作,同步操作为:更新所述另一个终端的相应文件; 若VCa与VCb冲突,说明在所述两个终端的文件上均有操作,更新所述两个终端的相应文件; 其中VCa为所述一个终端的向量时钟,VCb为所述另一终端的向量时钟。4.如权利要求1所述的文件同步中向量时钟的实现方法,其特征在于,所述步骤4包括:步骤41,将所述两个向量时钟的时钟分量对应的通用唯一识别码的并集作为所述新的向量时钟的时钟分量对应的通用唯一识别码; 步骤42,将所述新的向量时钟的任一时钟分量的版本设置为所述两个向量时钟中对应时钟分量的版本中的最大值,若某向量时钟不存在对应时钟分量,则设置新向量时钟中对应时钟分量的版本为另一存在的对应时钟分量的版本。5.如权利要求1所述的文件同步中向量时钟的实现方法,其特征在于,文件同步操作在多个终端上,该多个终端由权利要求1至4中的两个终端对组成。6.一种文件同步中向量时钟的实现系统,...

【专利技术属性】
技术研发人员:李旭刘立坤王一帆张立新
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1