一种多设备间文件同步的重命名处理方法及系统的制作方法

文档序号:6400302阅读:255来源:国知局
专利名称:一种多设备间文件同步的重命名处理方法及系统的制作方法
技术领域
本发明涉及通信和信息技术领域,以及计算机存储领域,尤其涉及一种多设备间文件同步的重命名处理方法及系统。
背景技术
近年来,个人数据的急剧增长和消费电子的迅速普及,个人数据的存储和管理问题变得日益突出。多设备间的文件同步作为一个基本数据管理服务的需求日益增长。典型的文件同步解决方案在模型上可以分为“有服务器”的情况和“无服务器”的情况两种。在有服务器的情况下,典型的同步流程是:在所有被同步设备上分别设置一个同步目录,并运行同步服务进程;该进程(以下称“源进程”)通过某种机制实时地(文件系统事件监听如:ReadDirectoryChanges, inotify, kevent等)或者定期地(文件系统扫描等)获取同步目录(以下简称“源目录”)的状态或变化并将这些状态或变化以某种预定义的表示(以下简称同步信息)发送给指定的服务器进程;服务器进程处理接收的同步信息,确定对所管理的同步目录(以下称“服务器目录”)下的对象(目录、文件以及相应的元数据)需要采取的操作,并执行这些操作,使得服务器目录与源目录同步。进而,服务器进程再将所述同步信息或其变形通过主动(服务器推送)或者被动(同步服务进程请求)的方式传送给其他被同步设备上的同步进程(以下简称“目的进程”),由目的进程进行类似处理,进而完成同步。“无服务器”的同步方案的典型流程与所述“服务器”的类似,但不同的是,所述同步信息的交换不是通过服务器转发,而是以一种点对点的方式进行交换,也即源进程直接将所述同步信息推动给目的进程或目的进程直接向源进程请求获取所述同步信息。所述同步信息可以有多重表示形式,但从本质上说有两种:(I)事件或者操作,可以是源目录树下对象上发生的事件,也可以是对目标目录下的对象应该采取的操作,包括但不限于添加、删除、修改、移动和重命名等。(2)状态元数据,源目录树下所有或者部分对象的元数据。所述状态元数据包括但不限于文件路径、创建和修改时间、文件指纹等。上述文件同步方法无法绕开的文件的重命名问题。这里的重命名包括文件名变化的情况(即狭义的“重命名”),也包括文件路径变化的情况(即文件移动)。由于涉及多个文件系统对象,重命名操作是一个相对比较复杂的操作,特别是允许多设备并发重命名冲突的发生情况下,某些的重命名处理方法可能会极大的增加系统的复杂性(主要表现在冲突处理方面),简单的忽略重命名而将其变成一个添加和删除的方式虽然能够简化系统复杂性但会增加数据传输负担,特别是对于大文件重命名的情况。

发明内容
本发明的发明目的是解决上述现有的文件同步技术中如何有效地处理重命名操作的问题,以降低多设备同步系统的复杂性和减少重命名相关的数据传输量。为实现上述发明目的,本发明提供了一种多设备间文件同步的重命名处理方法,该方法包括:
步骤1,目的进程向服务器或源进程发送获取同步信息的请求;步骤2,所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;步骤3,所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作;步骤4,所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。进一步的,所述步骤I之前还包括源进程处理步骤:源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并在有所述服务器时将所述元数据信息发送给服务器。进一步的,所述服务器端的当前元数据,是指服务器最后一次与任意终端通信并更新后的文件元数据;所述源进程端的当前元数据,是指源进程处理完所有监控到的源进程端事件后,能准确反应源进程端文件状态的文件元数据。其中所述同步信息为文件元数据的列表,该列表须包含以下信息要素:新添加的文件路径及其文件指纹;要删除的文件路径及其文件指纹,其中所述文件路径指的是文件相对于同步目录的路径,所述文件指纹是采用数据摘要算法产生文件内容的信息摘要,在概率上唯一的标识该文件内容。进一步的,所述步骤3包括:步骤31,所述目的进程分别从所述新添加文件集合和被删除的文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除;步骤32,,重复所述步骤31的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。进一步的,所述目的进程不对目录执行计算和重命名操作,而是直接处理目录的添加和删除操作。进一步的,所述映射和记录操作包括:显式的操作,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;隐含的操作,定期扫描同步目录,重新生成本地文件元数据信息。进一步的,所述步骤I之前源进程处理步骤还包括:目录重命名的处理步骤,所述源进程监控到所述同步目录下某目录的重命名操作时,则将该重命名映射为该目录本身和其下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及发送相应的元数据。为实现上述发明目的,本发明还提供一种多设备间文件同步的重命名处理系统,该系统包括:发送请求模块,用于通过目的进程向服务器或源进程发送获取同步信息的请求;获取请求模块,用于通过所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或用于通过所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程。
计算处理模块,用于通过所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作;执行操作模块,用于通过所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。进一步的,所述发送请求模块之前还包括源进程处理模块,用于通过源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并且在有所述服务器的情况下,将所述元数据信息发送给服务器。进一步的,所述计算处理模块包括:执行模块,所述目的进程分别从所述新添加文件集合和被删除的文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除;结果获得模块,重复所述步骤31的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。进一步的,所述发送请求模块之前还包括:目录重命名的处理模块,所述源进程监控到所述同步目录下某目录的重命名操作时,则将该重命名映射为该目录本身和其下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及发送相应的元数据。进一步的,所述映射和记录显式的实施,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;或隐含的完成,定期扫描同步目录,重新生成本地文件元数据信息。本发明的有益功效在于,解决现有的文件同步技术中如何有效地处理重命名操作的问题,以降低多设备同步系统的复杂性和减少重命名相关的数据传输量;基于状态元数据的同步信息保证了信息的可重入性,解决了处理中操作顺序的依赖,也不用关心传输过程中操作丢失的情况,降低了处理过程的复杂度。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1是本发明的多设备间文件同步的重命名处理方法流程图;图2是本发明的多设备间文件同步的重命名处理系统示意图;图3是本发明的一实施例的文件同步流程图。
具体实施例方式图1是本发明的多设备间文件同步的重命名处理方法流程图。图1所示,该方法包括:步骤1,目的进程向服务器(有服务器的情况)或源进程(无服务器的情况)发送获取同步信息的请求;步骤2,所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或者所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;步骤3,所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作;步骤4,所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。进一步的,所述步骤I之前还包括源进程处理步骤:源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并在有服务器的情况下,将所述元数据信息发送给服务器。其中所述服务器端当前元数据,是指服务器最后一次与任意终端通信并更新后的文件元数据;所述源进程端当前元数据,是指源进程处理完所有监控到的事件后,能准确反映源进程端所有文件的当前状态的文件元数据。其中所述同步信息为文件元数据的列表,该列表须包含以下信息要素:新添加的文件路径及其文件指纹;要删除的文件路径及其文件指纹,其中所述文件路径指的是文件相对于同步目录的路径,所述文件指纹是采用数据摘要算法产生文件内容的信息摘要,在概率上唯一的标识该文件内容。其中所述映射和记录显式的实施,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;或隐含的完成,定期扫描同步目录,重新生成本地文件元数据信息。所述步骤3计算得出重命名操作还进一步包括如下处理:(I)目的进程分别从添加文件集合和删除文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除。(2)重复所述(I)的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。所述步骤I之前的源进程处理步骤还进一步包括目录重命名的处理:源进程监控到同步目录下目录的重命名操作时,则将该重命名映射为该目录本身和目录下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及(有服务器时)发送相应的元数据。 所述步骤3和步骤4还进一步包括目录重命名的处理:目的进程不对目录执行重命名操作,以避免目录重命名的副作用(子目录和文件也被重命名),而是直接的处理目录的添加和删除操作。图2是本发明的多设备间文件同步的重命名处理系统示意图;图1所示,该系统包括:发送请求模块100,用于通过目的进程向服务器或源进程发送获取同步信息的请求;获取请求模块200,用于通过所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或者用于所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;计算处理模块300,用于通过所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作;执行操作模块400,用于通过所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。进一步的,所述发送请求模块100之前还包括源进程处理模块,用于通过源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并且在有服务器的情况下,将所述元数据信息发送给服务器。进一步的,所述源进程处理模块还包括源进程发送模块,用于在有服务器的情况下,将调整并记录后的元数据信息发送给服务器。其中所述服务器端当前元数据,是指服务器最后一次与任意终端通信并更新后的文件元数据;所述源进程端当前元数据,是指源进程处理完所有监控到的事件后,能准确反映源进程端所有文件的当前状态的文件元数据。其中所述同步信息为文件元数据的列表,该列表须包含以下信息要素:新添加的文件路径及其文件指纹;要删除的文件路径及其文件指纹,其中所述文件路径指的是文件相对于同步目录的路径,所述文件指纹是采用数据摘要算法产生文件内容的信息摘要,在概率上唯一的标识该文件内容。其中所述映射和记录显式的实施,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;或隐含的完成,定期扫描同步目录,重新生成本地文件元数据信息。进一步的,所述计算处理模块包括:执行模块,所述目的进程分别从所述新添加文件集合和被删除的文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除;结果获得模块,重复所述步骤31的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。进一步的,所述发送请求模块之前还包括:目录重命名的处理模块,所述源进程监控到所述同步目录下某目录的重命名操作时,则将该重命名映射为该目录本身和其下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及发送相应的元数据。图3描述了本发明一实施例的文件同步流程图。本实施例有服务器,文件同步具体步骤如下:初始状态:终端设备A (以下简称“终端A”)、终端设备B (以下简称“终端B”)和服务器处于同步状态。同步目录下存在目录dirD包含文件/fileA.txt、/fileB.txt、/dirD/fileC.txt三者通过表(具体实现可以使数据库也可以是文件)来维护同步目录状态,初始表状态如下:设备A、B:
权利要求
1.一种多设备间文件同步的重命名处理方法,其特征在于,包括: 步骤1,目的进程向服务器或源进程发送获取同步信息的请求; 步骤2,所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程; 步骤3,所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作; 步骤4,所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。
2.如权利要求1所述的重命名处理方法,其特征在于,所述步骤I之前还包括源进程处理步骤: 源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并在有所述服务器时将所述元数据信息发送给服务器。
3.如权利要求1所述的重命名处理方法,其特征在于, 所述服务器端的当前元数据,是指服务器最后一次与任意终端通信并更新后的文件元数据;所述源进程端的当前元数据,是指源进程处理完所有监控到的源进程端事件后,能准确反应源进程端文件状态的文件元数据。
4.如权利要求1所述的重 命名处理方法,其特征在于, 所述同步信息为文件元数据的列表,该列表须包含以下信息要素:新添加的文件路径及其文件指纹;要删除的文件路径及其文件指纹,其中所述文件路径指的是文件相对于同步目录的路径,所述文件指纹是采用数据摘要算法产生文件内容的信息摘要,在概率上唯一的标识该文件内容。
5.如权利要求1所述的重命名处理方法,其特征在于,所述步骤3包括: 步骤31,所述目的进程分别从所述新添加文件集合和被删除的文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除; 步骤32,重复所述步骤31的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。
6.如权利要求1所述的重命名处理方法,其特征在于,所述目的进程不对目录执行计算和重命名操作,而是直接处理目录的添加和删除操作。
7.如权利要求2所述的重命名处理方法,其特征在于 所述映射和记录操作包括:显式的操作,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;隐含的操作,定期扫描同步目录,重新生成本地文件元数据信息。
8.如权利要求2所述的重命名处理方法,其特征在于所述步骤I之前源进程处理步骤还包括: 目录重命名的处理步骤,所述源进程监控到所述同步目录下某目录的重命名操作时,则将该重命名映射为该目录本身和其下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及发送相应的元数据。
9.一种多设备间文件同步的重命名处理系统,其特征在于,包括: 发送请求模块,用于通过目的进程向服务器或源进程发送获取同步信息的请求;获取请求模块,用于通过所述服务器查询服务器端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;或用于通过所述源进程查询源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程; 计算处理模块,用于通过所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作; 执行操作模块,用于通过所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。
10.如权利要求9所述的重命名处理方法,其特征在于,所述发送请求模块之前还包括: 源进程处理模块,用于通过源进程监控同步目录,当检测到一个文件A被重命名为文件B时,将该重命名映射为{删除文件A,添加文件B},据此映射调整并记录文件A、B的元数据信息,并且在有所述服务器的情况下,将所述元数据信息发送给服务器。
11.如权利要求9所述的重命名处理系统,其特征在于,所述计算处理模块包括: 执行模块,所述目的进程分别从所述新添加文件集合和被删除的文件集合中选取具有相同文件指纹的文件各一个,将其映射为一个重命名操作,并从两个集合中分别删除; 结果获得模块,重复所述步骤31的操作直到两个集合中任意一个为空或者不存在文件指纹相同的元素为止。
12.如权利要求9所述的重命名处理系统,其特征在于所述发送请求模块之前还包括: 目录重命名的处理模块,所述源进程监控到所述同步目录下某目录的重命名操作时,则将该重命名映射为该目录本身和其下所有文件和子目录的相应的{添加,删除}操作,并据此映射调整和记录以及发送相应的元数据。
13.如权利要求7所述的重命名处理系统,其特征在于, 所述映射和记录显 式的实施,通过监控同步目录,一旦检测到重命名操作,则修改本地文件元数据中对应文件的状态;或隐含的完成,定期扫描同步目录,重新生成本地文件元数据信息。
全文摘要
本发明提供一种多设备间文件同步的重命名处理方法及系统,该方法包括步骤1.目的进程向服务器或源进程发送获取同步信息的请求;步骤2.所述服务器或源进程查询服务器端或源进程端所有文件的当前元数据,获取所述同步信息并发送给所述目的进程;步骤3.所述目的进程比较所述同步信息与本地文件元数据,确定新添加文件集合和被删除的文件集合,从而计算得出重命名操作;步骤4.所述目的进程执行所述重命名操作,根据执行结果调整重命名后的文件属性、更新本地元数据信息。本发明能够在现有的文件同步技术中处理重命名操作的问题,有效地降低了多设备同步系统的复杂性、减少了重命名相关的数据传输量。
文档编号G06F17/30GK103198100SQ20131008024
公开日2013年7月10日 申请日期2013年3月13日 优先权日2013年3月13日
发明者刘立坤, 王一帆, 张立新 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1