CN103152398B - 一种多终端文件间的文件同步方法及系统 - Google Patents
一种多终端文件间的文件同步方法及系统 Download PDFInfo
- Publication number
- CN103152398B CN103152398B CN201310049461.3A CN201310049461A CN103152398B CN 103152398 B CN103152398 B CN 103152398B CN 201310049461 A CN201310049461 A CN 201310049461A CN 103152398 B CN103152398 B CN 103152398B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- server
- terminal
- fingerprint
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种多终端文件间的文件同步方法及系统,其中该文件同步方法包括:S1,一终端对文件进行操作并将更新后的终端文件元数据发送给服务器;S2,服务器查询并获得本地服务器文件元数据,并将其与更新后的终端文件元数据进行比较,计算得出更新操作;S3,服务器根据更新操作调整文件属性、更新服务器文件元数据;S4,另一终端向服务器发送获取文件元数据的请求;S5,服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;S6,另一终端查询并获得本地终端文件元数据,并将其与接收的更新后的服务器文件元数据进行比较,计算得出同步操作;S7,另一终端执行同步操作。
Description
技术领域
本发明涉及通信和信息技术领域,尤其涉及一种多终端文件间的文件同步方法及系统。
背景技术
近年来,随着硬件性能的更新迭代,网络技术的快速发展,越来越多的人拥有多台数字设备,如一台办公PC、一台家庭娱乐PC和一部智能移动电话,甚者会有一台平板电脑或数码相机等。并且用户在多个不同的设备上使用同一文件的需求日益增长,这里使用或指添加、删除、修改、访问文件等操作,但又不仅限于上述操作,现有的文件同步技术能在一定程度上解决这个问题,通过在不同的设备上分别设置一个同步目录,用户对同步目录下的文件进行操作后,设备对本地同步目录进行一次全扫描,并与上一次同步完成后的本地文件列表进行比较,得到本地文件列表的更新操作,然后从服务器获取服务器保存的最新文件列表,再与本地文件列表的更新操作确定待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行文件同步。
这种文件同步方法的缺陷表现在,一台设备终端(以下简称终端)获得服务器文件列表并在本地进行同步文件的标识和操作计算时,因为这些标识和操作是基于服务器当前的文件列表来计算的,服务器在此同步期间不能发生更新,直至此次文件同步。所以在N个(N>2)终端同时在同步目录下操作时,同一时刻服务器只与一台设备进行文件同步,不能并行文件同步处理,造成服务器资源浪费且实时性差。
发明内容
本发明的发明目的是解决上述现有的文件同步技术中服务器不能并行处理终端的文件同步请求的问题,改进多设备同步响应的实时性。
为实现上述发明目的,本发明提供了一种多终端文件间的文件同步方法,该方法包括:
步骤1,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
步骤2,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作;
步骤3,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
步骤4,另一终端向所述服务器发送获取文件元数据的请求;
步骤5,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
步骤6,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
步骤7,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
进一步的,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
进一步的,所述步骤2中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A、B中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作。
进一步的,所述步骤6中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件f在M中存在,在N中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在M、N中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
为实现上述发明目的,本发明还提供一种多终端文件间的文件同步系统,该系统包括:
第一发送模块,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
服务器比较模块,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作;
服务器同步模块,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
第二发送模块,另一终端向所述服务器发送获取文件元数据的请求;
服务器发送模块,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
终端比较模块,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
终端更新模块,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
其中,所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
进一步的,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
进一步的,所述服务器比较模块中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A、B中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作。
进一步的,所述终端比较模块中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件f在M中存在,在N中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在M、N中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
本发明的有益功效在于,使得服务器和终端只关心自己文件元数据的状态,并在本地决策并执行相应文件操作,如添加、删除、修改和冲突处理等。与服务器集中决策相比,这种独立的、分布式的决策使得服务器可以同时决策多个终端发生的文件更新顺序和是否发生同步冲突,而不用在决策一台终端的文件同步时,锁住与其它设备交互的过程。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是本发明的多终端文件间的文件同步方法流程图;
图2是本发明的多终端文件间的文件同步系统示意图;
图3是本发明的远端元数据与本地元数据的比较方法流程图。
具体实施方式
图1是本发明的多终端文件间的文件同步方法流程图。如图1所示,该方法包括:步骤1,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
步骤2,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作;
步骤3,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
步骤4,另一终端向所述服务器发送获取文件元数据的请求;
步骤5,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
步骤6,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
步骤7,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
进一步的,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
进一步的,所述步骤2中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A、B中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作。
进一步的,所述步骤6中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件f在M中存在,在N中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在M、N中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
图2是本发明的多终端文件间的文件同步系统示意图。如图2所示,该系统包括:
第一发送模块100,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
服务器比较模块200,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作;
服务器同步模块300,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
第二发送模块400,另一终端向所述服务器发送获取文件元数据的请求;
服务器发送模块500,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
终端比较模块600,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
终端更新模块700,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
其中,所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
进一步的,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
进一步的,所述服务器比较模块200中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A、B中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作。
进一步的,所述终端比较模块600中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件f在M中存在,在N中不存在,则生成添加文件元数据操作
若某一文件f在M、N中同时存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
现在,以设备有服务器、终端A和终端B为实施例对本发明进一步介绍。
通信时元数据中的文件路径是以同步目录为根目录的相对路径,文件指纹采用SHA1,向量时钟的分量采用(字母标识:数字)的格式表示,字母标识用来区分不同的客户端,数字表示客户端操作文件的次数:
201、发送获取服务器文件元数据请求
具体地,终端向服务器发送获取文件元数据请求,以获得服务器的文件元数据列表。终端指具有文件生成、处理、存储能力的联网机器,计算机、手机、平板电脑、数码相机等可以认为是设备终端的一些实例。
202、查询并获取服务器当前文件元数据
具体地,服务器查询并获得的保存在服务器中的当前文件元数据,包含同步目录下面全部文件的当前元数据,也可以是全部文件的当前元数据的子集。保存在服务器中的当前文件元数据,一般是指服务器最后一次与任意终端通信并更新后的文件元数据。
例如,下面给出服务器的全部文件元数据的示例:
该示例中,包含/fileA.txt文件、/dirA文件夹和/dirA/fileB.txt的元数据,每条元数据包括文件路径、文件指纹、向量时钟。从向量时钟可以看出,/fileA.txt文件由终端A创建并且终端B操作过一次,或者由终端B创建并且终端A操作过一次;/dirA文件夹由终端A创建,/dirA/fileB.txt文件由终端B创建。
203、返回服务器文件元数据
具体地,服务器将查询得到的文件元数据发送给终端。
204、查询并获取终端文件元数据
具体地,终端会维护同步目录下的所有文件的元数据,这些元数据在同步完成后是与同步目录下的文件或文件夹实体一一对应。终端查询并获得的文件元数据包含同步目录下面全部文件的元数据,也可以是全部文件的元数据的子集。
例如,终端A查询并获得文件元数据为:
文件路径 | 文件指纹 | 向量时钟 |
/fileA.txt | 1c928ffe5b54da45035c7c2413e2403c8c56f278 | {(A:1)} |
/dirA | bd2a496bce463acdcf5e9599de7cfe0cf1d83611 | {(A:1)} |
/fileC.txt | eb9b8ef6f099b93cf4cd9101fe9394662cbb9570 | {(A:1)} |
该实例中的元数据描述了终端A同步目录下的文件状态,包含了/fileA.txt文件、/dirA文件夹和/fileC.txt文件,从向量时钟可以看出,这些文件或文件夹都由终端A创建。
205、比较终端与服务器的文件元数据,生成相应的文件元数据和文件操作
具体地,终端比较本地与从服务器获得的元数据,根据文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
例如,终端A比较本地和服务器的文件元数据中的文件路径,图3是本发明的远端元数据与本地元数据的比较方法流程图。根据图3流程计算可得知服务器添加了新文件/dirA/fileB.txt,并且删除了文件/fileC.txt;根据/fileA.txt的向量时钟可以计算得知终端B对该文件进行过一次操作,且根据文件指纹得知文件内容发生了改变。终端分别执行如下3个文件操作任务并更新本地文件元数据:从服务器下载/dirA/fileB.txt文件任务,删除本地的文件/fileC.txt,从服务器下载修改后的文件/fileA.txt。任务成功情况下,更新本地的文件元数据结果如下:
210、用户在终端进行文件操作
具体地,用户在终端进行文件操作,这些操作的结果是使终端的文件元数据发生变化,包括添加文件、修改文件、删除文件、重命名文件、拷贝文件、剪切文件等,但又不仅限于上述操作。
接上例,用户在上例同步完成后,进行了以下操作:编辑(修改)/fileA.txt文件,添加新文件/dirA/fileD.txt,将文件/dirA/fileB.txt重命名为/dirA/fileB-re.txt,本地文件元数据为:
221、查询并获取终端文件元数据
具体地,同104。
222、发送提交终端文件元数据请求
具体地,用户在终端对文件进行操作后,终端将更新后的文件元数据发送给服务器。发送终端文件的元数据可以是同步目录下全部文件的元数据,也可以是全部文件的元数据的子集,一种实施例是,终端只发送上一次发送之后被用户操作过的文件的元数据。
223、查询并获取服务器文件元数据
具体地,同102。
比较服务器与终端的文件元数据,生成相应的文件元数据和文件操作
具体地,服务器比较本地与终端传来的文件元数据,根据文件路径来终端设备对文件进行的添加和删除操作;根据向量时钟检测终端设备对文件修改操作以及检测文件同步冲突。
接上例,图3是本发明的远端元数据与本地元数据的比较方法流程图。服务器根据例图3的比较流程得知终端A添加了文件/dirA/fileD.txt,删除了文件/dirA/fileB.txt并添加了文件/dirA/fileB-re.txt(一次重命名操作),根据向量时钟计算得知终端A对文件/fileA.txt进行过一次操作,且根据文件指纹得知文件内容发生了改变。更新本地的文件元数据为:
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种多终端文件间的文件同步方法,其特征在于,包括:
步骤1,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
步骤2,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作,所述步骤2中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A中存在,与所述文件f相对应的文件f’在B中存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作;
步骤3,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
步骤4,另一终端向所述服务器发送获取文件元数据的请求;
步骤5,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
步骤6,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
步骤7,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
其中,所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
2.如权利要求1所述的多终端文件间的文件同步方法,其特征在于,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
3.如权利要求2所述的多终端文件间的文件同步方法,其特征在于,
根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
4.如权利要求1所述的多终端文件间的文件同步方法,其特征在于,所述步骤6中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件e在M中存在,在N中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件e在M中存在,与所述文件e相对应的文件e’在N中存在,则比较向量时钟,若e小于或等于e’,则e为e’的历史修改版本或e未修改,不生成任何操作;若e大于e’,则e至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明e至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若e与e’发生冲突,则进行文件冲突处理;
若某一文件e在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
5.一种多终端文件间的文件同步系统,其特征在于,包括:
第一发送模块,用户在一终端对文件进行操作后,该终端将更新后的终端文件元数据发送给服务器;
服务器比较模块,所述服务器查询并获得本地服务器文件元数据,并将其与所述更新后的终端文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出更新操作,所述服务器比较模块中:
假设更新后的终端文件元数据为A,本地服务器元数据为B,遍历A,B,
若某一文件f在A中存在,在B中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件f在A中存在,与所述文件f相对应的文件f’在B中存在,则比较向量时钟,若f小于或等于f’,则f为f’的历史修改版本或f未修改,不生成任何操作;若f大于f’,则f至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明f至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若f与f’发生冲突,则进行文件冲突处理;
若某一文件f在A中不存在,在B存在,则生成删除文件元数据操作和删除文件操作;
服务器同步模块,所述服务器根据所述更新操作调整文件属性、更新服务器文件元数据;
第二发送模块,另一终端向所述服务器发送获取文件元数据的请求;
服务器发送模块,所述服务器查询并获得更新后的服务器文件元数据,并将其发送给该另一终端;
终端比较模块,所述另一终端查询并获得本地终端文件元数据,并将其与接收的所述更新后的服务器文件元数据进行比较,检测文件的同步冲突,确定修改、添加和删除的文件集合,从而计算得出同步操作;
终端更新模块,所述另一终端执行所述同步操作,并根据执行结果调整同步后的文件属性、更新本地的终端元数据信息;
其中,所述终端文件元数据或服务器文件元数据均包括:文件路径、文件指纹、向量时钟、文件删除信息。
6.如权利要求5所述的多终端文件间的文件同步系统,其特征在于,所述文件路径用以标识文件在同步目录中的位置;
所述文件指纹用以产生文件内容的信息摘要;
所述向量时钟用以解决文件同步过程中的文件一致性;
所述文件删除信息包括显式的文件删除信息和隐式的文件删除信息,用以表示文件是否处于已删除的状态。
7.如权利要求6所述的多终端文件间的文件同步系统,其特征在于,根据所述文件路径来检测服务器或者其它终端设备对文件进行的添加和删除操作;根据所述向量时钟检测服务器或其它终端设备对文件修改操作以及检测文件同步冲突。
8.如权利要求5所述的多终端文件间的文件同步系统,其特征在于,所述终端比较模块中:
假设更新后的服务器文件元数据为M,本地终端元数据为N,遍历M、N,
若某一文件e在M中存在,在N中不存在,则生成添加文件元数据操作和添加文件操作;
若某一文件e在M中存在,与所述文件e相对应的文件e’在N中存在,则比较向量时钟,若e小于或等于e’,则e为e’的历史修改版本或e未修改,不生成任何操作;若e大于e’,则e至少被修改过一次,生成更新文件元数据操作,并通过比较文件指纹对文件更新进行优化,如果文件指纹相同说明e至少被修改过一次,且修改过后的内容相同,不进行处理,如果文件指纹不相同,说明若e与e’发生冲突,则进行文件冲突处理;
若某一文件e在M中不存在,在N存在,则生成删除文件元数据操作和删除文件操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049461.3A CN103152398B (zh) | 2013-02-07 | 2013-02-07 | 一种多终端文件间的文件同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049461.3A CN103152398B (zh) | 2013-02-07 | 2013-02-07 | 一种多终端文件间的文件同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152398A CN103152398A (zh) | 2013-06-12 |
CN103152398B true CN103152398B (zh) | 2016-05-11 |
Family
ID=48550257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310049461.3A Active CN103152398B (zh) | 2013-02-07 | 2013-02-07 | 一种多终端文件间的文件同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103152398B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366012A (zh) * | 2013-07-29 | 2013-10-23 | 北京金和软件股份有限公司 | 一种基于文件同步状态的突变重叠图标实现方法 |
CN104348859B (zh) * | 2013-07-30 | 2019-05-07 | 深圳市腾讯计算机系统有限公司 | 文件同步方法、装置、服务器、终端及系统 |
US9436460B2 (en) * | 2013-10-29 | 2016-09-06 | International Business Machines Corporation | Regression alerts |
CN104794131B (zh) * | 2014-01-21 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 一种文件的批量编辑方法及装置 |
CN104506527B (zh) * | 2014-12-23 | 2021-12-17 | 苏州海博智能系统有限公司 | 多维信息指针平台及其数据访问方法 |
CN104079623B (zh) * | 2014-05-08 | 2018-03-20 | 深圳市中博科创信息技术有限公司 | 多级云存储同步控制方法及系统 |
CN104158898B (zh) * | 2014-08-25 | 2018-01-19 | 曙光信息产业股份有限公司 | 一种分布式文件系统中文件布局的更新方法 |
CN104503979A (zh) * | 2014-11-26 | 2015-04-08 | 上海斐讯数据通信技术有限公司 | 一种断电断网的文件同步方法 |
US10425477B2 (en) | 2015-09-15 | 2019-09-24 | Microsoft Technology Licensing, Llc | Synchronizing file data between computer systems |
CN106657170B (zh) * | 2015-10-28 | 2021-03-30 | 斑马智行网络(香港)有限公司 | 一种数据同步方法及装置 |
CN106708911A (zh) * | 2015-11-18 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种云环境下数据文件同步的方法和装置 |
CN106713250B (zh) * | 2015-11-18 | 2019-08-20 | 杭州华为数字技术有限公司 | 基于分布式系统的数据访问方法和装置 |
CN105915572A (zh) * | 2015-12-12 | 2016-08-31 | 乐视移动智能信息技术(北京)有限公司 | 一种移动终端处理数据冲突的方法和装置 |
CN106161629B (zh) * | 2016-07-13 | 2020-08-04 | 广州新博庭网络信息科技股份有限公司 | 一种业务对象同步的方法、客户端和服务器 |
CN105959420A (zh) * | 2016-07-15 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 多客户端元数据同步更新方法及系统 |
US10802922B2 (en) | 2016-08-26 | 2020-10-13 | International Business Machines Corporation | Accelerated deduplication block replication |
US11176097B2 (en) | 2016-08-26 | 2021-11-16 | International Business Machines Corporation | Accelerated deduplication block replication |
US11630735B2 (en) | 2016-08-26 | 2023-04-18 | International Business Machines Corporation | Advanced object replication using reduced metadata in object storage environments |
CN106372221B (zh) * | 2016-09-07 | 2019-08-20 | 华为技术有限公司 | 一种文件同步的方法、设备及系统 |
CN107066594B (zh) * | 2017-04-19 | 2021-02-26 | 浪潮集团有限公司 | 一种元数据同步的方法 |
CN107087038A (zh) * | 2017-06-29 | 2017-08-22 | 珠海市魅族科技有限公司 | 一种数据同步的方法、同步设备、装置及存储介质 |
CN107846450A (zh) * | 2017-09-29 | 2018-03-27 | 珂伯特机器人(天津)有限公司 | 一种聊天数据同步的方法 |
CN109582686B (zh) * | 2018-12-13 | 2021-01-15 | 中山大学 | 分布式元数据管理一致性保证方法、装置、系统及应用 |
CN110727650B (zh) * | 2019-12-18 | 2021-06-25 | 广联达科技股份有限公司 | 一种云端文档的同步方法和系统 |
CN111125038B (zh) * | 2019-12-31 | 2023-04-07 | 成都驰通数码系统有限公司 | 一种基于云存储的智能数据同步方法及其系统 |
CN111723153A (zh) * | 2020-06-18 | 2020-09-29 | 苏州琨山智能科技有限公司 | 一种数据同步处理方法、装置、设备及存储介质 |
CN111857497B (zh) * | 2020-06-30 | 2021-08-13 | 维沃移动通信有限公司 | 操作提示方法和电子设备 |
CN114691631A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 一种数据同步方法和装置 |
CN114817140A (zh) * | 2021-01-18 | 2022-07-29 | 华为技术有限公司 | 分布式文件访问方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954317A (zh) * | 2004-05-26 | 2007-04-25 | 诺基亚公司 | 用于管理媒体项的方法、系统、计算机程序和设备 |
CN1992631A (zh) * | 2005-12-30 | 2007-07-04 | 摩托罗拉公司 | 用于使大对象数据同步的方法 |
CN102811260A (zh) * | 2012-08-10 | 2012-12-05 | 清华大学 | 文件云同步系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527660B2 (en) * | 2006-12-22 | 2013-09-03 | Palm, Inc. | Data synchronization by communication of modifications |
-
2013
- 2013-02-07 CN CN201310049461.3A patent/CN103152398B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954317A (zh) * | 2004-05-26 | 2007-04-25 | 诺基亚公司 | 用于管理媒体项的方法、系统、计算机程序和设备 |
CN1992631A (zh) * | 2005-12-30 | 2007-07-04 | 摩托罗拉公司 | 用于使大对象数据同步的方法 |
CN102811260A (zh) * | 2012-08-10 | 2012-12-05 | 清华大学 | 文件云同步系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103152398A (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103152398B (zh) | 一种多终端文件间的文件同步方法及系统 | |
CN102404338B (zh) | 一种文件同步方法和装置 | |
CN109413127B (zh) | 一种数据同步方法和装置 | |
CN103198100B (zh) | 一种多设备间文件同步的重命名处理方法及系统 | |
CN107315825B (zh) | 一种索引更新系统、方法及装置 | |
CN103428264B (zh) | 数据同步的方法、设备及系统 | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN101340425A (zh) | 终端间进行数据同步的方法和装置 | |
CN103605798A (zh) | 一种直接操作云端存储文件的方法 | |
CN102736923B (zh) | 软件定制安装方法及系统 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN102831047A (zh) | 动态调整监控对象的日志信息输出的方法、装置和设备 | |
CN103354560A (zh) | 数据的分解同步方法及系统 | |
CN103312489A (zh) | 一种终端与服务器进行同步的方法和装置 | |
CN101820439A (zh) | 文件的显示方法、装置及客户端 | |
CN105915636B (zh) | 一种联系人信息的同步方法和装置 | |
WO2008104933A1 (en) | Efficient detection of deleted objects against a stateless content directory service | |
CN107948220B (zh) | 通讯录云服务的同步方法和装置 | |
CN102685220A (zh) | 一种基于web页面的数据交互方法及系统 | |
CN111767495A (zh) | 一种合成网页的方法及系统 | |
CN103812908B (zh) | 云端文件处理方法以及系统 | |
CN106294058A (zh) | 处理运营问题单据的目标策略确定方法及装置 | |
CN112988879B (zh) | 访问数据库的方法、系统、装置、存储介质及处理器 | |
CN114385570A (zh) | 数据同步的方法、装置、电子设备和可读介质 | |
CN103220336A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |