描述了一种方便对计算机/文件系统目录进行快速、可靠同步的系统和方法。同步(FastSync)子系统在发现/列举阶段操作以向呼叫客户端提供目录之间的差异集、然后在动作阶段操作以进行由客户端指示的操作来将不同目录同步。发现/列举和动作阶段使用并行操作和I/O(输入/输出)流水线操作。多线程在列举过程中用来列举各个目录的孩子,并将各个子目录入队以便由新线程处理。在动作阶段,当操作被请求时,FastSync子系统将操作、项目指针、和上下文信息封装到内部上下文块中并且将该包排队作为处理线程池要处理的工作项目。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及计算机系统,尤其涉及计算机文件和目录。技术背景计算机用户通常需要在诸如旅行时、在家中工作时、或网络当机时从网络断 开而离线工作。结果,各种机制旨在将网络信息高速缓存到本地计算机上以允许在 本地计算机从网络断开时可以访问该信息。本地高速缓存也可减少网络服务器与以 离线模式工作的客户端之间通信的数据量。减少传输数据量的好处包括减少服务器 工作负荷、减少客户端的反应时间、以及增加可用网络带宽。离线工作通常相关于服务器目录层次改变离线目录层次的状态。层次中目录 的变化可通过诸如属性变化或数据写入的文件变化形式、或诸如创建新文件或目录 或删除文件的名空间变化形式来进行。不管变化或多个变化,在某种意义上,有必要进行某些进程来将离线客户端 与服务器目录同步到同步状态。在同步状态中,两个目录层次具有相同的子目录结 构,在这些目录内包含相同的文件名。而且,对于在两个目录中都存在的各个文件, 这些文件需要在其数据流中包含相同的数据,并且具有相同的关联属性、时间戳和 其它文件系统信息。然而,将高速缓存离线项目与服务器文件系统项目(目录和文件)同步十分 复杂、相对较慢,并且总会遇到问题。需要一种快速、可靠的同步离线文件的方法。
技术实现思路
简而言之,本专利技术涉及一种方便目录及其文件同步的多阶段系统和方法,诸 如将本地、离线高速缓存中维护的目录与远程网络文件系统中另一目录同步。为此,快速、可靠的同步(FastSync)子系统在发现/列举阶段中操作以向呼叫客户端提供 差异集,然后在动作阶段进行如客户端指示的操作以对不同目录进行同步。在发现/列举阶段中,FastSync子系统确定目录之间存在的差异,其中包括诸如一文件己从一目录中删除但其对应目录并未删除的名空间差异或两个文件属性和/或内容之间的差异。在一实现中,可由FastSync子系统将诸如描述差异的节点 树的同步结构返回到客户端呼叫器。建立同步树结构作为包含表示已经改变的项目(文件或目录)的目录名空间 子集。为了节省存储器使用,对于未更改项目,节点未被置于树中,但是对于未改 变的子目录(但其下具有改变的项目),在树中维护简单节点以保持正确的层次组 织。各个同步项包含描述当前状态的同步状况域,例如在一个目录或另一目录或两 者中是否有文件从其原始状态改变,或者是否由于它是在其存在的目录中新创建的 或已从其消失的目录中删除而只存在于一个目录中。客户端呼叫器按需分析返回的结构,然后请求FastSync子系统采取旨在使目 录进入同步状态的指定动作。在动作阶段中,FastSync子系统执行如客户端指示地 同步原语(可组合成更复杂动作中的操作)。在一实现中,FastSync子系统的发现/列举和动作阶段利用并行操作和I/O (输 入/输出)流水线操作,包括通过在各个阶段过程中使用多线程。例如,在列举过 程中,各个线程在两个目录下打开同一路径,并列举孩子(文件和目录)。线程入 队将由新线程处理的各个子目录,然后通过将树更改成包括改变元素的同步项而在 该目录内处理差异。除了文件列举,FastSync子系统也使用目录列举。在各个列举 发现新目录时,进而由另一个线程对这些目录进行排队。因此,目录及其子目录有 可能由不同线程并行处理。这使CPU利用率最大化并且利用了 I/O流水线操作, 尤其是通过网络。在网络上,这种流水线操作减少了等待时间对同步的总时间的影 响。在动作阶段过程中,当有操作被请求,FastSync子系统将操作、项目指针和 上下文信息封装在内部上下文块中并将该包排队为由处理线程池处理的工作项目。 注意到,内部排队确保这些动作以适当顺序被执行。当线程可用于进行一项操作时, FastSync子系统从该队列中提取一项目并进行该工作,对呼叫器按需进行回叫。如 果该动作己成功,则总体进程可视为将线程返回到线程池直到以后另-一项目需要。 如果没有成功,则客户端允许一定数目的再试,或者使该项目添加回工作列表,例 如通过向呼叫器返回失败代码。其它优点将在结合附图并参照详细描述而变得显而易见。附图说明图1是一般示出将本专利技术结合其中的计算环境的框图2是包括通过根据本专利技术各个方面的快速、可靠同步子系统实现同步的一 般示例架构的框图3是包括根据本专利技术各个方面进行同步的目录的框图4是由根据本专利技术各个方面的在列举阶段中的同步子系统开发的同步树示图5是根据本专利技术各个方面的用于维护待同步项目的数据的示例数据结构的示图6和7是示出根据本专利技术各个方面的通常旨在同步目录的示例逻辑的流程图8是根据本专利技术各个方面的在客户端呼叫器与快速、可靠的同步子系统之 间的各种相互作用的表示。具体实施方式 示例性操作环境图1示出实施本专利技术的适当计算系统环境100的示例。计算系统环境100仅 为适当计算环境的一个示例并且不旨在对本专利技术的使用或功能范围产生任何限制。 计算环境IOO不应解释为具有与示例性操作环境IOO所示的部件中任一个或任一结合相关的任何依赖或要求。本专利技术可通过许多其它一般目的或专用目的的计算系统环境或配置来运行。可适用于本专利技术的公知计算系统、环境、和/或配置的示例包括,但不局限于个人计算机、服务器计算机、手持或膝上型器件、平板设备、多处理器系统、基于微处理器的系统、置顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。本专利技术可在由计算机执行的诸如程序模块的计算机可执行指令的一般上下文 中描述。通常,程序模块包括执行特定任务或实现特定抽象数据结构的例程、程序、 对象、部件、数据结构等。本专利技术能在其中任务由通过通信网络链接的远程处理设 备执行的分布式计算环境中实施。在分布式计算环境中,程序模块可位于包括存储 器存储设备的本地和/或远程计算机存储介质中。参照图1,实现本专利技术的示例性系统包括计算机110形式的通用计算设备。计 算机110的部件包括,但不局限于处理单元120、系统存储器130、和将包括系统存储器的各种系统部件耦连于处理单元120的系统总线121。系统总线121可以是 包括存储器总线或存储器控制器、外围总线、和使用各种总线构架中任一种的局域 总线的若干种总线结构中的任一种。作为示例而非限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA (EISA)总线、视频电子标 准协会(VESA)局域总线、和也称为Mezzanine总线的外围部件互连(PCI)总线。计算机110通常包括各种计算机可读介质。计算机可读介质可以是由计算机 110访问的任何可用介质,并且包括易失性和非易失性介质、和可移动和不可移动 介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信媒介。计 算机存储介质包括以存储诸如计算机可读指令、数据结构、程序模块、或其它数据 的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算 机存储介质包括,但不局限于RAM、 ROM、 EEPROM、闪存或其它存储技术、 CD-ROM、数字多功能盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储 或其它磁性存储器件、或可用于存储期望信息并由计算机110访问的任何其它介 质。通信媒介通常包含在诸如载波或其它传输机制中调制数据信号的计算机可读指 令本文档来自技高网...
【技术保护点】
一种在计算环境中的计算机实现的方法,包括: 在第一阶段中评估多个目录的内容以列举所述目录之间的差异;以及 在第二阶段中响应于请求的动作执行操作以将所述目录同步。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:TA兰根,BS奥斯特,N弗克,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。