快速文件比对方法、系统及客户端技术方案

技术编号:7809450 阅读:289 留言:0更新日期:2012-09-27 08:27
本发明专利技术涉及一种快速文件比对方法、系统及客户端。快速文件比对方法包括:客户端对本地文件目录进行扫描分析,并根据本地文件系统的变化更新客户端维护的第一标识树,第一标识树中节点与客户端的本地各个目录相对应,节点信息包括节点标识和目录相关信息;客户端将服务器端设备维护的第二标识树与第一标识树进行逐个节点的比对,记录差异节点和该差异节点对应的变化文件;客户端根据记录的差异节点及变化文件向服务器端设备段提供数据,以供服务器端设备维护的第二标识树和存储文件进行更新。本发明专利技术采用比对反映客户端本地文件系统的节点信息的方式,这种方式更加快速,且适合更大更复杂的文件系统,能够有效的提高文件比对效率和性能。

【技术实现步骤摘要】

本专利技术涉及文件处理领域,尤其涉及ー种快速文件比对方法及系统。
技术介绍
在文件处理技术中,为了更有效的组织管理文件系统,往往需要根据一定的规则对文件进行组织编排,这种组织编排通常会造成文件结构的高度复杂化,导致数据查找性能也随之急剧下降。在文件管理过程中,目前的文件比对操作一般采用文件两两之间进行所有字节比对来判断文件是否相同,这种比对方式在小型文件系统中是可行的,但是在一个大规模复杂或单一文件体积庞大的文件系统几乎是不可行的,而且通常基于文件简单属性去进行的判断又不完全准确。 另外,文件源文件与备份文件出于安全等因素的考虑往往存储在不同物理介质中,在操作文件时增加输入输出设备的负担,降低了设备的处理效率。在文件操作中,目前的一种文件比对的方法是通过散列函数获取文件的散列值来实现文件比对,虽然有效的解决了单个大文件比对时性能的瓶颈,但源文件与备份文件比对时根据文件结构的数量M与文件数量N进行M+N次的比对,源文件与备份文件在不同物理介质之间频繁的操作,造成性能下降。
技术实现思路
本专利技术的目的是提出ー种快速文件比对方法、系统及客户端,能够有效的提高文件比对效率和性能。为实现上述目的,本专利技术提供了ー种快速文件比对方法,包括客户端对本地文件目录进行扫描分析,并根据本地文件系统的变化更新所述客户端维护的第一标识树,所述第一标识树中的各个节点与所述客户端的本地文件系统结构中的各个目录相对应,每个节点保存的节点信息包括节点标识和目录相关信息;所述客户端将服务器端设备维护的第二标识树与所述第一标识树进行逐个节点的比对,记录所述第一标识树相比于所述第二标识树的差异节点和该差异节点对应的变化文件;所述客户端根据记录的所述差异节点及变化文件向所述服务器端设备段提供数据,以供所述服务器端设备维护的第二标识树和存储文件进行更新。进ー步的,所述客户端对本地文件目录进行扫描分析的操作具体包括所述客户端对所述本地文件系统结构中各个目录进行遍历,并对遍历的目录进行扫描分析,获得对应的扫描結果。进ー步的,所述客户端对所述本地文件系统结构中各个目录进行遍历的操作具体包括所述客户端从所述本地文件系统结构的根目录开始,根据排序规则逐级定位到相应路径分支的第一个末级目录;在每完成被定位目录的扫描分析后,检查同一级的其他目录中未扫描分析的目录,并判断该目录内是否存在目录,如果存在,则根据排序规则定位到该目录对应的路径分支的末级目录,否则定位在该目录;如果同一级的所有目 系统结构的根目录,完成所述根目录的扫描分析完成整个遍历过程。进ー步的,所述扫描结 果包括被扫描目录的路径信息、被扫描目录内所有文件和/或目录的路径信息、基本信息及对应的散列值;所述根据本地文件系统的变化更新所述客户端维护的第一标识树的操作具体包括所述客户端根据所述扫描结果生成相应的节点标识,并将生成 的节点标识与所述第一标识树中的对应节点的节点标识进行匹配;如果与所述第一标识树中的对应节点不匹配,则根据所述扫描结果和所述生成的节点标识对所述对应节点的节点信息进行更新;如果所述第一标识树中不存在对应节点,则根据所述扫描结果和所述生成的节点标识在所述第一标识树的相应位置増加新节点,作为所述生成的节点标识在所述第一标识树中的对应节点,并对所述新节点的节点信息进行更新;在对当前节点的节点信息进行更新后,继续根据所述扫描结果中的被扫描目录的路径信息向上对当前节点的直属上级节点直到根节点逐层进行节点信息的更新。进ー步的,文件的基本信息包括文件名称、文件大小、文件属性和文件修改时间中的至少ー种,目录的基本信息包括目录名称、目录大小、目录属性和目录修改时间中的至少ー种。进ー步的,所述生成相应的节点标识的操作具体包括对被扫描目录内的所有文件和/或目录对应的散列值进行排序,并按照排序得到的顺序将被扫描目录内的所述所有文件和/或目录对应的散列值按照字符串的方式进行首尾相接方式的组合;对组合得到的散列值字符串进行散列计算,得到对应的散列值作为所述被扫描目录对应的散列值;根据所述被扫描目录的路径信息和计算出的散列值生成所述被扫描目录所对应节点的节点标识。进ー步的,如果所述被扫描目录内既没有文件,也没有目录,则所述被扫描目录的散列值设定为预设值或空值。进ー步的,所述客户端将服务器端设备维护的第二标识树与所述第一标识树进行逐个节点的比对的操作具体包括所述客户端将服务器端设备维护的第二标识树与所述第一标识树从根节点开始比对,通过比对所述第二标识树与所述第一标识树的对应节点的节点标识是否不相同来确定当前节点是否为差异节点,如果当前节点不是差异节点,则继续比对当前节点的兄弟节点的节点标识,否则从当前节点的子节点继续进行比对;如果当前节点为根节点,且不是差异节点,则确定所述第一标识树与所述第二标识树之间不存在差异节点。进ー步的,所述第一标识树和第二标识树中的全部节点均遵循快速文件交換(Fast File Transfer,简称 FFT)协议。 为实现上述目的,本专利技术还提供了一种实现快速文件比对的客户端,包括扫描分析単元,用于对本地文件目录进行扫描分析;标识树更新単元,用于根据本地文件系统的变化更新所述客户端维护的第一标识树,所述第一标识树中的各个节点与所述客户端的本地文件系统结构中的各个目录相对应,每个节点保存的节点信息包括节点标识和目录相关信息; 节点比对单元,用于将服务器端设备维护的第二标识树与所述第一标识树进行逐个节点的比对;差异记录単元,用于记录所述第一标识树相比于所述第二标识树的差异节点和该差异节点对应的变化文件;数据提供単元,用于根据记录的所述差异节点及变化文件向所述服务器端设备段提供数据,以供所述服务器端设备维护的第二标识树和存储文件进行更新。进ー步的,所述扫描分析单元具体包括目录遍历组件,对所述本地文件系统结构中各个目录进行遍历;扫描分析组件,对遍历的目录进行扫描分析,获得对应的扫描結果。进ー步的,所述扫描结果包括被扫描目录的路径信息、被扫描目录内所有文件和/或目录的路径信息、基本信息及对应的散列值;所述标识树更新单元具体包括节点标识生成组件,用于根据所述扫描结果生成相应的节点标识;节点标识匹配组件,用于将生成的节点标识与所述第一标识树中的对应节点的节点标识进行匹配;新节点生成组件,用于在所述第一标识树中不存在对应节点时,根据所述扫描结果和所述生成的节点标识在所述第一标识树的相应位置増加新节点,作为所述生成的节点标识在所述第一标识树中的对应节点;节点信息更新组件,用于根据所述扫描结果和所述生成的节点标识对所述对应节点的节点信息进行更新;向上逐级更新组件,用于在对当前节点的节点信息进行更新后,继续根据所述扫描结果中的被扫描目录的路径信息向上对当前节点的直属上级节点直到根节点逐层进行节点信息的更新。进ー步的,所述节点标识生成组件具体包括排序子组件,用于对被扫描目录内的所有文件和/或目录对应的散列值进行排序;散列值组合子组件,用于按照排序得到的顺序将被扫描目录内的所述所有文件和/或目录对应的散列值按照字符串的方式进行首尾相接方式的组合;散列计算子组件,用于对组合得到的散列值字符串进行散列计算,得到对应的散列值作为所述被扫描目录对应的散列值;节点标识生成子组件,用于根据所述被扫描目录的路径信息和本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.ー种快速文件比对方法,包括 客户端对本地文件目录进行扫描分析,并根据本地文件系统的变化更新所述客户端维护的第一标识树,所述第一标识树中的各个节点与所述客户端的本地文件系统结构中的各个目录相对应,每个节点保存的节点信息包括节点标识和目录相关信息; 所述客户端将服务器端设备维护的第二标识树与所述第一标识树进行逐个节点的比对,记录所述第一标识树相比于所述第二标识树的差异节点和该差异节点对应的变化文件; 所述客户端根据记录的所述差异节点及变化文件向所述服务器端设备段提供数据,以供所述服务器端设备维护的第二标识树和存储文件进行更新。2.根据权利要求I所述的方法,其中所述客户端对本地文件目录进行扫描分析的操作具体包括 所述客户端对所述本地文件系统结构中各个目录进行遍历,并对遍历的目录进行扫描分析,获得对应的扫描結果。3.根据权利要求2所述的方法,其中所述客户端对所述本地文件系统结构中各个目录进行遍历的操作具体包括 所述客户端从所述本地文件系统结构的根目录开始,根据排序规则逐级定位到相应路径分支的第一个末级目录; 在每完成被定位目录的扫描分析后,检查同一级的其他目录中未扫描分析的目录,并判断该目录内是否存在目录,如果存在,则根据排序规则定位到该目录对应的路径分支的末级目录,否则定位在该目录; 如果同一级的所有目录均已完成扫描分析,则根据排序规则定位到上ー级的第一个目录,直到定位所述本地文件系统结构的根目录,完成所述根目录的扫描分析完成整个遍历过程。4.根据权利要求2或3所述的方法,其中,所述扫描结果包括被扫描目录的路径信息、被扫描目录内所有文件和/或目录的路径信息、基本信息及对应的散列值; 所述根据本地文件系统的变化更新所述客户端维护的第一标识树的操作具体包括 所述客户端根据所述扫描结果生成相应的节点标识,并将生成的节点标识与所述第一标识树中的对应节点的节点标识进行匹配; 如果与所述第一标识树中的对应节点不匹配,则根据所述扫描结果和所述生成的节点标识对所述对应节点的节点信息进行更新; 如果所述第一标识树中不存在对应节点,则根据所述扫描结果和所述生成的节点标识在所述第一标识树的相应位置増加新节点,作为所述生成的节点标识在所述第一标识树中的对应节点,并对所述新节点的节点信息进行更新; 在对当前节点的节点信息进行更新后,继续根据所述扫描结果中的被扫描目录的路径信息向上对当前节点的直属上级节点直到根节点逐层进行节点信息的更新。5.根据权利要求4所述的方法,其中文件的基本信息包括文件名称、文件大小、文件属性和文件修改时间中的至少ー种,目录的基本信息包括目录名称、目录大小、目录属性和目录修改时间中的至少ー种。6.根据权利要求4所述的方法,其中,所述生成相应的节点标识的操作具体包括对被扫描目录内的所有文件和/或目录对应的散列值进行排序,并按照排序得到的顺序将被扫描目录内的所述所有文件和/或目录对应的散列值按照字符串的方式进行首尾相接方式的组合; 对组合得到的散列值字符串进行散列计算,得到对应的散列值作为所述被扫描目录对应的散列值; 根据所述被扫描目录的路径信息和计算出的散列值生成所述被扫描目录所对应节点的节点标识。7.根据权利要求6所述的方法,其中如果所述被扫描目录内既没有文件,也没有目录,则所述被扫描目录的散列值设定为预设值或空值。8.根据权利要求4所述的方法,其中所述客户端将服务器端设备维护的第二标识树与所述第一标识树进行逐个节点的比对的操作具体包括 所述客户端将服务器端设备维护的第二标识树与所述第一标识树从根节点开始比对,通过比对所述第二标识树与所述第一标识树的对应节点的节点标识是否不相同来确定当...

【专利技术属性】
技术研发人员:曲彬凯周栋韩成强
申请(专利权)人:浙江省公众信息产业有限公司
类型:发明
国别省市:

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

1