CN101523358A - 文件系统目录的快速、可靠同步 - Google Patents
文件系统目录的快速、可靠同步 Download PDFInfo
- Publication number
- CN101523358A CN101523358A CNA2006800124760A CN200680012476A CN101523358A CN 101523358 A CN101523358 A CN 101523358A CN A2006800124760 A CNA2006800124760 A CN A2006800124760A CN 200680012476 A CN200680012476 A CN 200680012476A CN 101523358 A CN101523358 A CN 101523358A
- Authority
- CN
- China
- Prior art keywords
- computer
- catalogue
- file
- fastsync
- subsystem
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
Abstract
描述了一种方便对计算机/文件系统目录进行快速、可靠同步的系统和方法。同步(FastSync)子系统在发现/列举阶段操作以向呼叫客户端提供目录之间的差异集、然后在动作阶段操作以进行由客户端指示的操作来将不同目录同步。发现/列举和动作阶段使用并行操作和I/O(输入/输出)流水线操作。多线程在列举过程中用来列举各个目录的孩子,并将各个子目录入队以便由新线程处理。在动作阶段,当操作被请求时,FastSync子系统将操作、项目指针、和上下文信息封装到内部上下文块中并且将该包排队作为处理线程池要处理的工作项目。
Description
技术领域
本发明一般涉及计算机系统,尤其涉及计算机文件和目录。
背景技术
计算机用户通常需要在诸如旅行时、在家中工作时、或网络当机时从网络断开而离线工作。结果,各种机制旨在将网络信息高速缓存到本地计算机上以允许在本地计算机从网络断开时可以访问该信息。本地高速缓存也可减少网络服务器与以离线模式工作的客户端之间通信的数据量。减少传输数据量的好处包括减少服务器工作负荷、减少客户端的反应时间、以及增加可用网络带宽。
离线工作通常相关于服务器目录层次改变离线目录层次的状态。层次中目录的变化可通过诸如属性变化或数据写入的文件变化形式、或诸如创建新文件或目录或删除文件的名空间变化形式来进行。
不管变化或多个变化,在某种意义上,有必要进行某些进程来将离线客户端与服务器目录同步到同步状态。在同步状态中,两个目录层次具有相同的子目录结构,在这些目录内包含相同的文件名。而且,对于在两个目录中都存在的各个文件,这些文件需要在其数据流中包含相同的数据,并且具有相同的关联属性、时间戳和其它文件系统信息。
然而,将高速缓存离线项目与服务器文件系统项目(目录和文件)同步十分复杂、相对较慢,并且总会遇到问题。需要一种快速、可靠的同步离线文件的方法。
发明内容
简而言之,本发明涉及一种方便目录及其文件同步的多阶段系统和方法,诸如将本地、离线高速缓存中维护的目录与远程网络文件系统中另一目录同步。为此,快速、可靠的同步(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仅为适当计算环境的一个示例并且不旨在对本发明的使用或功能范围产生任何限制。计算环境100不应解释为具有与示例性操作环境100所示的部件中任一个或任一结合相关的任何依赖或要求。
本发明可通过许多其它一般目的或专用目的的计算系统环境或配置来运行。可适用于本发明的公知计算系统、环境、和/或配置的示例包括,但不局限于:个人计算机、服务器计算机、手持或膝上型器件、平板设备、多处理器系统、基于微处理器的系统、置顶盒、可编程消费电子设备、网络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访问的任何其它介质。通信媒介通常包含在诸如载波或其它传输机制中调制数据信号的计算机可读指令、数据结构、程序模块、或其它数据,并且包括任何信息传输媒介。术语“调制数据信号”表示使其一个或多个特征以在该信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信媒介包括诸如有线网络或直接线连接的有线网络、和诸如声学、RF、红外和其它无线媒介的无线媒介。上述中任一种的组合也同样被包括在计算机可读介质的范围之内。
系统存储器130包括以诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机存储介质。包含诸如在启动过程中帮助在计算机110内的元件之间传递信息的基本例程的基本输入/输出系统133(BIOS)通常存储在ROM 131。RAM 132通常包含可由处理单元120即时访问和/或正在其上操作的数据和/或程序模块。作为示例而非限制,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出从不可移动、非易失性磁性介质读取或向其写入的硬盘驱动器141、从可移动、非易失性磁盘152读取或向其写入的磁盘驱动器151、和从诸如CD ROM或其它光学介质的可移动、非易失性光盘156读取或向其写入的光盘驱动器155。可用于示例性操作环境的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不局限于磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口连接于系统总线121,且磁盘驱动器151和光盘驱动器155通常由诸如接口150的可移动存储器接口连接于系统总线121。
如上所述以及如图1所示的驱动器及其关联计算机存储介质提供对计算机110的计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些部件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。本文中向操作系统144、应用程序145、其它程序模块146和程序数据147提供不同的附图标记以至少表示它们是不同的拷贝。用户可通过诸如书写板、或电子数字转换器164、话筒163、键盘162、和通常是指鼠标、轨迹球或触控板的指点器件161的输入器件将指令和信息输入到计算机110中。图1中未示出的其它输入器件可包括操纵杆、游戏手柄、卫星盘、扫描仪等。这些和其它输入器件通常通过耦连于系统总线的用户输入接口160连接于处理单元120,但是也可由诸如并行端口、游戏端口和通用串行总线(USB)的其它接口和系统总线连接。监视器191或其它类型的显示器件也经由诸如视频接口190的接口连接于系统总线121。监视器191也可与触控屏幕面板等集成。注意,监视器和/或触控屏幕面板可以物理耦合于计算器件110结合其中的外壳,诸如在平板型个人计算机中。此外,诸如计算器件110的计算机还可包括可通过输出外围接口194等连接的诸如扬声器195和打印机196的其它外围输出器件。
计算机110可在逻辑连接于一个或多个诸如远程计算机180的远程计算机的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等器件或其它共用网络节点,并且通常包括上述与计算机110相关的元件中的多个或全部,尽管只有存储器存储器件181在图1中示出。图1所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可包括其它网络。这种网络环境在办公室、企业范围计算机网络、内部网和因特网中十分常见。
当用于LAN网络环境中时,计算机110通过网络接口或适配器170连接于LAN 171。当用于WAN网络环境中时,计算机110通常包括调制解调器172或用于在诸如因特网的WAN 173上建立通信的其它装置。内置或外置调制解调器172可经由用户输入接口160或其它适当机制连接于系统总线121。在网络化环境中,相关于计算机110或其部分描述的程序模块可存储在远程存储器存储器件中。作为示例而非限制,图1示出驻留在存储器器件181的远程应用程序185。应该理解,所示网络连接为示例性的,并且可使用在计算机之间建立通信链接的其它装置。
对本地和远程文件和目录进行同步
本发明一般涉及一种系统和方法,通过该系统和方法,在诸如本地离线高速缓冲和远程网络文件系统中的目录得以同步。为此,本发明发现在目录之间存在何种差异,向呼叫客户端列举该差异,然后在客户端请求时,例如发出要达到同步状态所需的文件系统相关的命令时,采取动作。如将要理解的,许多实现本发明的方法都是可行的,但本文只描述一些可选方案。例如,以下主要参考并行执行许多同步相关操作的多阶段、多线程模型来描述本发明。然而,其它类型的安排同样可行,且本发明不局限于本文使用的任何特定示例,而且可通过通常在计算中提供益处和优点的各种方式使用。
在一实现中,对于多阶段操作,同步子系统操作在定位和列举待同步的两个目录结构之间的差异的发现阶段、以及其中同步原语(可组合到更复杂动作中的操作)得以执行的动作阶段。这向操作在分析阶段中的客户端呼叫机制提供非常快速、可靠的机制作为手段。如将会理解的,本实现中的子系统提供重要的并行操作和I/O(输入/输出)流水线操作,因此方便了快速同步,因此本文中该子系统(简)称为FastSync子系统200(图2)。
通常,在本示例实施方式中,FastSync子系统200部件列举目录之间的差异并执行同步相关的请求,但是对如何对目录进行同步不作确定。作为替代,FastSync子系统200在列举阶段报告目录的状态,并在动作阶段中采取来自客户端呼叫器202(图2)的关于要进行哪个或哪些操作(与动作对应)来对独立文件或目录进行同步的明确命令。这允许不同类型的呼叫器与FastSync子系统200进行接口,诸如需要获取用户输入来同步的交互式应用程序、或需要在无需提示用户的背景下运行的组策略处理器和脚本。一个适当的客户端呼叫器202包括高速缓冲服务的客户端控制器,如在2005年1月10日提交的美国专利申请序列号No.11/032,870中所述,该申请授让给本发明的受让人并通过引用结合于此。注意,在该服务模型中,服务允许应用程序或同步管理器程序204具有同步功能而无需进行许多复杂的同步分析。
通常,在本实现中,FastSync子系统200不包含解决不同步条件的逻辑。一个原因是这允许不同的呼叫器以不同方式同步。作为替代,FastSync子系统200动作操作提供原语,诸如以下示例操作(将两个目录A和B同步)中列举的:
该操作足够高级,使得呼叫器无需担心细节,但是它向呼叫器给出以不同方式解决冲突的选择权。例如,呼叫器有时(并不总是)可能期望在删除或盖写文件之前将其备份;这种行为在本系统中是可能的。作为另一示例,在某些情况下,呼叫器总是期望使文件夹B看起来像文件夹A,不管文件夹A已经改变与否。在这种事件中,呼叫器可简单地选择删除或盖写B中变化、然后从A向B拷贝新内容的操作。
注意,在FastSync子系统200中不具有分析逻辑将在某些方面使其简化,但在其它方面使事情更复杂。复杂是指FastSync子系统200总是有必要通过例如更新数据结构来提供关于文件或目录状态的最新的正确信息。
参照图2,其中示出的示例安排包括应用程序/同步管理器204、客户端呼叫器/同步分析机构202和FastSync子系统200。在一实现中,这些部件通过定义的接口集通信。
FastSync子系统200经由卷A214和卷B216上的文件系统212和/或适当远程接口(未示出)访问目录信息。虽然图2示出本地卷214和通常为远程卷上的网络服务器的服务器卷216,但是本发明不局限于任何特定卷安排。实际上,本发明能够将两个远程卷、两个本地卷上的文件同步,并且甚至适于将同一卷上的两个目录同步。本发明也可支持安装点(mount point)卷,其中安装点卷实质上是安装在另一卷目录中的卷。因此,虽然本发明通过将本地卷(或某些其基于目录的子集)与远程卷同步的典型示例描述,但是它们仅仅是非限制性示例。
如图3所示,在列举阶段中,FastSync子系统200估计两个目录314和316,这可开始于本地卷和服务器上的对应用户名空间的根目录(但是可以是彼此对应的子目录)。注意,在图3中,目录示为圆形,而文件示为正方形。还要注意,列举阶段可使用多线程以便于快速操作,如下所述。
通常,列举阶段之后,客户端呼叫器202从FastSync子系统200获得包含关于待同步项目的信息的同步状态数据结构。在图3的示例实施方式中,该结构排列成同步树320。如下所述,客户端呼叫器202估计该信息,按需参考系统策略等,并引导FastSync子系统200对这些项目进行一个或多个同步相关的动作(原语)。这在图3中通过由客户端呼叫器202向动作处理部件326提供的动作请求324示出。
为了提供同步树数据结构320,FastSync子系统200有效地检测各个目录状态,以便于向呼叫器报告目录之间的差异。建立同步树320作为包含已经改变的文件或目录的目录名空间子集。为了节省存储器使用,未更改文件不在树中出现,不包含改变内容或自身未改变的目录不包含在树中。然而,注意未改变但其中具有已改变文件的目录作为树中的简单节点得以维持以便于保留正确的分层组织。
图4示出包含从图3中待同步的示例目录构建的不同节点的同步树320。在图4中,树中示出用来保留分层组织的简单节点由下标S字符标示。此外,与图3类似,在图4中表示目录的节点示为圆形,而表示文件的节点示为正方形。
可以看出,同步树320中的节点对应于名空间差异或文件(属性和/或内容)间差异。例如,在图4中,节点E和I(以及E的子节点)不在两个目录中都出现,因此这些名空间差异与其子节点一起是同步树320中的节点。节点J及其子文件K在各个目录中相同,因此为了效率目的而不包括在同步树320中。此外,在文件H中存在文件差异,如图3目录结构316中的阴影框所示,因此该文件与作为其父亲的简单节点C一起包括在同步树320中。
如图5所示,树320中各个节点(除简单节点以外)包含可以是文件或目录的一个同步项目的信息的数据结构550。同步项目包含同步描述,该描述可表示同步项目的初始、同步状态以及各个项目自从其上次同步状态以来改变的方式。例如,对于已更改的文件,同步项目应包含来自同步状态的原始上次写入时间、文件大小、属性等,以及如果存在拷贝时来自两个目录的拷贝的这些域的当前值;(注意,至少一个值集与初始不同或它应该没有不同步)。
此外,各个同步项包含描述文件“状态”的同步状况域。例如,同步状况指示文件是否在一个目录或另一个或两者中从初始状态改变,或者是否因为在其存在的目录中是新创建的文件或在从其消失的目录删除的文件而仅在一个目录中存在。同步状况足够细化(granular)使得呼叫器可用它作为基础来应用其状态机器以选择为同步项目要执行的一个或多个操作。
呼叫器202使用同步树320及其中的项目来进行分析,诸如上述美国专利申请序列号No.11/032,870中所述。基于该分析,呼叫器202随后请求FastSync子系统进行旨在使目录进入同步状态的一个或多个动作。
更具体地,响应于来自呼叫器202的操作请求,FastSync子系统200可向客户端高速缓存驱动器和服务器卷驱动器(例如重定向器)进行必要的呼叫以进行所请求的操作和其它操作,并将进展/状况报告回呼叫器202。虽然对本发明并不必要,但是在一实现中,当一操作被请求,FastSync子系统200将该操作、项目指针、和上下文信息封装到内部上下文块中,并将该包作为一个工作项目排队给处理线程池以进行处理。注意,内部排队确保动作以适当顺序执行。当一线程可用于进行一操作时,FastSync子系统200从该队列中提取一项目并进行该工作,按需回叫呼叫器202。还要注意,FastSync子系统操作是异步的。然而,因为回叫可在任何时间从许多线程池线程之一执行,所以回叫上下文没有特定线程亲和性,并且因此由例如呼叫器202发出的对客户端进展和冲突处理实现的呼叫得以串行化。呼叫器202也可将进展/状况反映回呼叫应用程序204(图2)。
图6示出FastSync子系统200的呼叫器202的典型控制/流程。在图6中,如步骤600所示,呼叫器202请求FastSync子系统200进行以上列举阶段。如果如步骤602所估计的由于某些原因未成功(例如服务器未响应),则进程通过在步骤616报告适当错误而结束。
在没有错误发生的典型状况中,取而代之,步骤602分支到向工作列表添加一个或多个动作项目的步骤604(注意该工作列表与上述呼叫器使其串行化的内部FastSync子系统工作项目队列不同)。通常工作列表表示待由呼叫器处理的同步项集合。
步骤606表示从工作列表中选择项目,且步骤608表示处理该所选项目。在一实现中,文件的最初入队包括以深度优先遍历树,为各个项目选择最初动作并用于向该列表添加项目,包括旋转队列。注意,在步骤606,工作项目可从树的最初遍历以及从错误(通过如下所述的步骤710)到达,而且该进程实质上在队列上重复直到不剩余工作项目,如下所述。
因此,通常对项目的处理是确定对该项目所请求的动作、判定该项目是否具有不可恢复的错误、或推断该项目已被同步。如果该项目需要被同步,则步骤610和612表示请求将由FastSync控制器200进行动作的该项目入队。
步骤614重复选择、处理以及可能的入队步骤直到工作列表为空。在为空时,呼叫器操作完成,尽管有可能在如果FastSync子系统200不能适当进行所请求的动作时将一项目添加回工作列表中,如下所述。同步在FastSync子系统200成功完成所有处理且对呼叫器没有留下待处理同步项时真正完成。
每当在步骤612入队一动作(例如通过向FastSync子系统200的API呼叫),FastSync子系统200只要在其具有资源(例如可用线程)可用时就可使其出队。通常,图7表示这些操作,包括在步骤702等待队列中项目。在一实现中,出队的项目在由另一线程消耗的另一队列中入队,从而方便如下所述的并行操作。
在该并行实现中,FastSync子系统200通过分立线程处理有关同步项的操作,因此步骤704之后的步骤表示操作执行(成功或未成功)完成后的控制流程,如分立线程所进行的。通常如步骤706所示地尝试动作并进行回叫。如果动作成功(步骤708),总的进程可视为将线程返回到线程池直到随后另一项目需要。如果不成功,则客户端可允许数次重试,如步骤710返回到步骤706所示。如果不允许重试,则通过从图7返回到步骤604而如图6所示地将该项目添加回工作列表,例如通过向呼叫器返回失败代码。
图8更详细地解释并行处理,主要示出在呼叫器的视野中的FastSync子系统200应用编程接口(API)。在高层次上,使用FastSync子系统200的同步具有两个阶段,即如上所述的列举和动作。列举的目的是快速有效地找到并报告需要同步的目录部分,并且以某些逻辑方式向呼叫器202报告差异。在动作阶段,呼叫器202为未同步的各个文件或目录选择一个或多个操作,这旨在使项目返回同步状态。
呼叫器202可使用FastSync子系统API集来入队操作,其中FastSync子系统200将它们简单地添加到队列并立即返回。FastSync子系统200并行地使用多线程进行该操作,各个线程从队列中取一未决操作并将其执行。一旦各个操作完成,FastSync子系统200通过执行在该操作入队时提供的回叫来通知呼叫器。然后呼叫器评估操作结果,并在失败时尝试重试该操作,或者将对该文件或目录的新操作入队。
注意,呼叫器放弃对其呼叫线程的控制的值得重视的时间的唯一点在列举阶段过程中,其间FastSync子系统200并不返回控制直到列举完成(成功或失败),即使它提供频繁回叫,以允许呼叫器更改列举行为或完全中止列举。在动作阶段中,呼叫器对将与同步项关联的操作入队的请求返回得相当快速,因为FastSync子系统200对将它们添加到待进行的操作队列只进行较少工作。
在动作阶段结束时,当FastSync子系统200线程完成其工作时,它执行在该操作入队时提供的回叫,以返回关于操作结果的信息和表示在动作中被操作的文件或目录的同步项。回叫发生在与用于使操作入队到FastSync子系统200的线程分开的线程。在回叫中,呼叫器可以选择重试操作,在此情形中呼叫器将收到报告重试操作结果的另一回叫。否则,即使呼叫器不期望在完成回叫过程中重试完全相同的操作,它可以在此后为同一同步项入队新的操作(与以前相同的操作或新操作)。
通过这种方式,并行操作和I/O流水线操作(多个线程用于处理和I/O以减少空闲时间)通常得到最大化,而总的传输数据得以最小化。为此,在一实现中,在列举和动作过程中都使用多线程,如图8一般示出,其中FastSync子系统200在多线程上列举两边的目录树的内容并在所有线程完成处理时返回。
在列举过程中,各线程打开两个目录下相同的路径,并列举所有孩子(文件和目录)。线程将由新线程处理的各个子目录入队,然后通过更改树以包括改变元素的同步项来处理该目录中的差异。
FastSync子系统200的列举方法的一个其它方面是它如此操作而无需打开待同步的目录中的每个文件。打开是代价高昂的,尤其是通过网络打开。为了通过打开每个文件来确定文件性质(诸如改变时间、大小和属性),不得不打开文件、查询文件信息、以及关闭文件。在本地系统上,三个操作中的每个需要进入操作系统,而且在远程文件系统上,这表示网络上至少三次往返,且有可能开销更多。
为避免这一代价,FastSync子系统200代之以使用目录列举。对于目录列举,只需要打开目录一次,之后对该处理的各个查询取得关于多个文件的信息而无需打开它们。然后,需要关闭目录。一个主要差别是通过利用目录列举,对每个目录只需要一次打开和一次关闭,而不是对每个文件和目录一次。此外,对目录的仅一次查询产生许多文件的信息,而不是使用逐文件方法对各个文件和目录的一次查询信息(就操作系统和往返代价而言,文件和目录通常是等价的)。除了最小化与服务器往返交互之外,这还因降低开销而减少总的传输数据量。
在各个列举发现新目录时,这些目录被排队用于另一线程的列举。因此,目录及其所有子目录有可能由不同线程并行处理。这使CPU利用率最大化并利用了I/O流水线操作的优势,特别是在网络上。在网络上,这种流水线操作减小了等待时间对同步总时间的影响。
在动作阶段中,多个线程处理由呼叫器入队的操作,使各个动作在单个线程上运行和完成,即每个动作一个线程,且多个动作同时执行。
容易理解,对于可靠性,系统应通过多次重试任何操作的能力来适度处理文件系统多个部分的中断和不可用(例如由于共享违规)。对于列举,如果列举个别文件或目录失败则列举阶段不会失败。相反,FastSync子系统200将报告同步树中的某个节点不能被列举。呼叫器可在以后的时间点启动从该子树开始的新列举。
动作阶段可包含更加复杂的失败处理逻辑。例如,当FastSync子系统200报告对特定同步项操作失败时,它更新该项目以反映新的同步状态和文件相关信息(诸如属性、大小和改变时间)。呼叫器可选择向FastSync子系统200发送信号来立即重试先前的动作(并在重试操作完成时接收另一回叫),或者等待并在任何点将同一操作或新操作的同步项入队。
通过具有该弹性,呼叫器有可能实现许多种可能来响应操作结果。例如,呼叫器有可能通过等待一段时间并且之后通过将该操作入队并期望打开文件的应用程序关闭其处理以重试该操作,来响应共享违规。此外,呼叫器有可能在每次失败之后通过任意复杂状态机运行该项目(例如在许多情形中,最初用来确定如何将文件同步的相同状态机)。这样,呼叫器有可能通过确定如何将文件同步的单个无状态系统一次又一次地运行同步项。该系统可包括互动地询问用户做什么、参考机器或域策略、制作文件的备份拷贝等。
此外,因为意识到文件或目录不应被锁住很长时间,本发明减小对文件系统可用性的影响。与一次同步一个文件相反,为了效率和速度一次同步整个目录树的问题是通过例如打开禁止其它应用程序写入操作的句柄而排他地控制文件不切实际。然而,当一次同步一个文件时,排他地控制文件、询问呼叫器做什么、之后执行该动作而不将其释放是可以接受的。FastSync子系统200尝试通过在上一操作完成过程中不一直控制来自列举的每个单个更改文件或目录而避免耗尽系统资源以及打扰应用程序用户。
为此,FastSync子系统200通过目录列举来列举目录层次,这允许诸如查询和文件/子目录创建的目录操作,但是不防止向文件写入。在动作阶段过程中,FastSync子系统200检验文件在列举过程中时该文件在相同状态;通常,该文件在列举过程中在相同状态,但是它有可能改变。如果文件在列举与动作之间已改变,则不同的操作有可能比所选的更适合。在这种情形中,FastSync子系统200完成该操作而无需接触文件或目录,并报告一个失败代码以向呼叫器说明发生了变化。呼叫器有机会立即响应以重试操作或取消操作。在后者中,呼叫器有可能为该项目提交新的动作。呼叫器也可命令FastSync子系统200忽略以无害方式改变的文件某些方面。
因此,FastSync子系统200打开文件(因此将其在某种程度上锁住以免其它文件系统访问)的唯一时机是列举过程中以及之后在处理操作时的动作过程中的短暂时间。因为可适当接受中断,FastSync子系统200及其呼叫器也可处理列举和动作阶段之间的矛盾。注意通过事务文件系统(诸如事务(Transactional)NTFS,如美国专利No.6,856,993中所述),FastSync子系统200有可能将事务上下文与同步项关联以提供回退同步变化的能力。
虽然对本发明不是必须的,呼叫器应当为任何每文件或每目录处理提供回叫,但是需要在FastSync子系统200操作过程中进行。虽然FastSync子系统200驱动列举和动作,但是存在呼叫器需要进行某些处理并向FastSync子系统200提供回叫的情形。在这些情形中,使用回叫使得FastSync子系统200可提示用户。一个示例是在列举过程中,其中呼叫器可选择仅同步全部可用目录的子集而忽略其它。一个示例是当某些目录是实际上安装在缓慢连接的远程文件系统时、或当存在已知为仅包含只读数据的目录时。FastSync子系统200可向呼叫器提供回叫使得在列举目录之前,它执行回叫以实际上询问呼叫器做什么。然后呼叫器可通过指示是否应列举目录、跳过、或完全中止列举来响应FastSync子系统200。
另一示例是在动作阶段过程中,在拷贝新创建的子目录时,此时对于呼叫器知道每个文件并避免拷贝某些文件或目录很重要。例如,使某一文件服务器的诸如版权内容的某些类型文件排除在外很重要,或者不拷贝远程文件系统安装的子目录很重要。出于这种原因,在拷贝目录树时提供回叫,从而呼叫器可选择跳过某些文件或目录或者完全取消拷贝。
从上述详细描述可见,提供了同步模型,其中列举和动作方法实际上是独立的并由FastSync子系统驱动,同时允许呼叫器具有其在同步进程中所需的控制。同步进程快速、可靠、以及弹性以使不同呼叫器能够获得所列举的信息并请求动作。因此,本发明提供当前计算中所需的许多益处和优点。
虽然本发明可容许各种更改和替换构建,但是其特定说明实施方式在附图中示出并在上文中详细描述。然而,应该理解,不旨在将本发明限制于具体公开形式,相反,本发明将涵盖落在本发明的精神和范围内的所有更改、替换构建、和等效方案。
Claims (20)
1.一种在计算环境中的计算机实现的方法,包括:
在第一阶段中评估多个目录的内容以列举所述目录之间的差异;以及
在第二阶段中响应于请求的动作执行操作以将所述目录同步。
2.如权利要求1所述的方法,其特征在于,所述第一和第二阶段是响应于至少一个客户请求而进行的,且所述方法还包括向客户端呼叫器返回包括所列举的所述目录之间的差异的数据结构用于分析。
3.如权利要求2所述的方法,其特征在于,还包括按照节点树安排所述数据结构,节点中的至少一些包含与未同步的文件或目录相关的信息。
4.如权利要求3所述的方法,其特征在于,按照节点树安排所述数据结构包括排除同步的节点。
5.如权利要求1所述的方法,其特征在于,在第二阶段中响应于请求的动作执行操作以将所述目录同步包括处理组合成复合动作的一组原语操作。
6.如权利要求1所述的方法,其特征在于,评估多个目录的内容包括使用多线程目录列举来确定两个目录树之间的差异。
7.如权利要求1所述的方法,其特征在于,响应于请求的动作执行操作包括排队与同步相关的操作供各个线程并行处理。
8.如权利要求7所述的方法,还包括在回叫中报告完成的操作的结果。
9.具有执行时实现如权利要求1所述方法的计算机可执行指令的至少一个计算机可读介质。
10.一种在具有多个存储单元的计算环境中的系统,包括:
同步子系统,包括相对于另一存储单元上的对应目录树评估一存储单元上的目录树,以确定所述目录树之间的差异的装置;
响应于请求报告所述差异的装置;以及
进行所请求的操作以将所述目录树同步的装置。
11.如权利要求10所述的系统,其特征在于,评估所述目录树装置包括进行多线程目录列举的装置。
12.如权利要求10所述的系统,其特征在于,进行所请求的操作的装置包括排队操作供线程池的并行线程进行处理的装置。
13.具有计算机可执行指令的至少一个计算机可读介质,所述指令在执行时进行以下步骤,包括:
从客户端呼叫器接收至少一个与同步相关的请求;
在第一阶段评估多个目录的内容以列举目录之间的差异;
向所述客户端呼叫器返回所述差异;以及
在第二阶段进行由所述客户端呼叫器指示的操作以将所述目录同步。
14.如权利要求13所述的计算机可读介质,其特征在于,向所述客户端呼叫器返回所述差异包括安排包括具有对应于所述差异的信息的项目节点树的数据结构。
15.如权利要求13所述的计算机可读介质,其特征在于,还具有包括使用基于事务的机制回退至少一个文件上的同步改变的计算机可执行指令。
16.如权利要求13所述的计算机可读介质,其特征在于,评估多个目录的内容包括使用多线程目录列举。
17.如权利要求13所述的计算机可读介质,其特征在于,响应于所请求的动作执行操作包括排队与同步相关的操作供各个线程并行处理。
18.如权利要求17所述的计算机可读介质,还具有包括在回叫中报告所完成的操作的结果的计算机可执行指令。
19.如权利要求17所述的计算机可读介质,还具有包括尝试失败的操作的计算机可执行指令。
20.如权利要求17所述的计算机可读介质,还具有包括确保待同步的项目自向所述客户端呼叫器返回所述差异以来未改变状态,以及在所述项目上进行所请求的操作的计算机可执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/124,739 | 2005-05-09 | ||
US11/124,739 US7634514B2 (en) | 2005-05-09 | 2005-05-09 | Synchronizing file system directories |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101523358A true CN101523358A (zh) | 2009-09-02 |
Family
ID=37395230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800124760A Pending CN101523358A (zh) | 2005-05-09 | 2006-04-03 | 文件系统目录的快速、可靠同步 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7634514B2 (zh) |
EP (1) | EP1880321A4 (zh) |
JP (1) | JP2008541263A (zh) |
KR (1) | KR20080006558A (zh) |
CN (1) | CN101523358A (zh) |
WO (1) | WO2006121526A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567341A (zh) * | 2010-12-09 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 一种实现软件内外目录同步的方法和系统 |
CN104994177A (zh) * | 2015-08-06 | 2015-10-21 | 上海爱数软件有限公司 | 网盘系统的同步方法、终端设备和网盘系统 |
CN108885559A (zh) * | 2016-03-29 | 2018-11-23 | 微软技术许可有限责任公司 | 在多个处理器之间快速转移工作负载 |
CN111566620A (zh) * | 2018-01-08 | 2020-08-21 | 赫尔环球有限公司 | 用于提供基于位置的服务的分布式处理系统和方法 |
CN112162964A (zh) * | 2020-10-15 | 2021-01-01 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2816090B1 (fr) * | 2000-10-26 | 2003-01-10 | Schlumberger Systems & Service | Dispositif de partage de fichiers dans un dispositif a circuit integre |
US7346664B2 (en) | 2003-04-24 | 2008-03-18 | Neopath Networks, Inc. | Transparent file migration using namespace replication |
WO2005029251A2 (en) | 2003-09-15 | 2005-03-31 | Neopath Networks, Inc. | Enabling proxy services using referral mechanisms |
US8190741B2 (en) | 2004-04-23 | 2012-05-29 | Neopath Networks, Inc. | Customizing a namespace in a decentralized storage environment |
US8195627B2 (en) * | 2004-04-23 | 2012-06-05 | Neopath Networks, Inc. | Storage policy monitoring for a storage network |
EP1900189B1 (en) * | 2005-06-29 | 2018-04-18 | Cisco Technology, Inc. | Parallel filesystem traversal for transparent mirroring of directories and files |
US8131689B2 (en) * | 2005-09-30 | 2012-03-06 | Panagiotis Tsirigotis | Accumulating access frequency and file attributes for supporting policy based storage management |
US7464237B2 (en) * | 2005-10-27 | 2008-12-09 | International Business Machines Corporation | System and method for implementing a fast file synchronization in a data processing system |
JP4912026B2 (ja) * | 2006-04-27 | 2012-04-04 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
US7917963B2 (en) * | 2006-08-09 | 2011-03-29 | Antenna Vaultus, Inc. | System for providing mobile data security |
US8775678B1 (en) * | 2007-12-19 | 2014-07-08 | Symantec Corporation | Automated wireless synchronization and transformation |
US8065381B2 (en) * | 2008-01-25 | 2011-11-22 | Microsoft Corporation | Synchronizing for directory changes performed while offline |
US8583600B2 (en) * | 2008-04-03 | 2013-11-12 | International Business Machines Corporation | Deploying directory instances |
US8805925B2 (en) * | 2009-11-20 | 2014-08-12 | Nbrella, Inc. | Method and apparatus for maintaining high data integrity and for providing a secure audit for fraud prevention and detection |
US9058334B2 (en) * | 2010-02-11 | 2015-06-16 | Emc Corporation | Parallel file system processing |
US8290900B2 (en) * | 2010-04-24 | 2012-10-16 | Research In Motion Limited | Apparatus, and associated method, for synchronizing directory services |
US9880860B2 (en) * | 2010-05-05 | 2018-01-30 | Microsoft Technology Licensing, Llc | Automatic return to synchronization context for asynchronous computations |
US8825598B2 (en) * | 2010-06-16 | 2014-09-02 | Apple Inc. | Media file synchronization |
KR101319465B1 (ko) * | 2011-09-27 | 2013-10-17 | 주식회사 미니게이트 | 엔스크린용 파일 제공 시스템 |
US20140040191A1 (en) * | 2012-08-01 | 2014-02-06 | A Charles BEDDOE | Inventorying and copying file system folders and files |
US9298391B2 (en) * | 2012-12-19 | 2016-03-29 | Dropbox, Inc. | Application programming interfaces for data synchronization with online storage systems |
US9552363B2 (en) * | 2013-04-30 | 2017-01-24 | Microsoft Technology Licensing, Llc | File management with placeholders |
US9405767B2 (en) | 2013-05-01 | 2016-08-02 | Microsoft Technology Licensing, Llc | Streaming content and placeholders |
GB2515192B (en) * | 2013-06-13 | 2016-12-14 | Box Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US10140309B2 (en) * | 2014-06-10 | 2018-11-27 | Alfresco Software, Inc. | File tracking on client machines synchronized with a content management system repository |
WO2016018447A1 (en) | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | File creation |
US10996897B2 (en) * | 2016-08-25 | 2021-05-04 | Microsoft Technology Licensing, Llc | Storage virtualization for directories |
JP6767662B2 (ja) * | 2017-02-14 | 2020-10-14 | 株式会社バッファロー | 記憶装置、ファイル複製システム、ファイル複製方法、および、コンピュータプログラム |
US20180335902A1 (en) * | 2017-05-16 | 2018-11-22 | Apple Inc. | Techniques for dynamically displaying relevant files for selection |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US11573931B2 (en) * | 2021-01-21 | 2023-02-07 | Microsoft Technology Licensing, Llc | Smart near-real-time folder scan based on a breadth first search |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6147773A (en) * | 1995-09-05 | 2000-11-14 | Hewlett-Packard Company | System and method for a communication system |
US5778389A (en) * | 1996-05-23 | 1998-07-07 | Electronic Data Systems Corporation | Method and system for synchronizing computer file directories |
US6070254A (en) * | 1997-10-17 | 2000-05-30 | International Business Machines Corporation | Advanced method for checking the integrity of node-based file systems |
JPH11232159A (ja) * | 1998-02-13 | 1999-08-27 | The Japan Reserch Institute Ltd | ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体 |
JP3254434B2 (ja) * | 1999-04-13 | 2002-02-04 | 三菱電機株式会社 | データ通信装置 |
JP3464172B2 (ja) * | 1999-06-30 | 2003-11-05 | 株式会社次世代情報放送システム研究所 | 送信装置および送信方法、受信装置および受信方法、ならびに、送受信システムおよび送受信方法 |
JP3963417B2 (ja) * | 1999-11-19 | 2007-08-22 | 株式会社東芝 | データ同期処理のための通信方法および電子機器 |
AU2002303126A1 (en) * | 2001-03-16 | 2002-10-03 | Novell, Inc. | Client-server model for synchronization of files |
WO2002077862A1 (en) * | 2001-03-27 | 2002-10-03 | British Telecommunications Public Limited Company | File synchronisation |
US7389335B2 (en) * | 2001-11-26 | 2008-06-17 | Microsoft Corporation | Workflow management based on an integrated view of resource identity |
US6745303B2 (en) * | 2002-01-03 | 2004-06-01 | Hitachi, Ltd. | Data synchronization of multiple remote storage |
US6721871B2 (en) * | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
JP2003330784A (ja) * | 2002-05-13 | 2003-11-21 | Tdk Corp | データベース同期方法、データベース同期システム、コンピュータプログラム及び記録媒体 |
US7047377B2 (en) * | 2002-08-20 | 2006-05-16 | Gruintine Pueche, Inc. | System and method for conducting an auction-based ranking of search results on a computer network |
BRPI0418908A (pt) * | 2004-05-26 | 2007-11-27 | Nokia Corp | método, programa de computador, terminal móvel e sistema de armazenagem para gerenciar os itens de mìdia |
US20060041596A1 (en) * | 2004-08-19 | 2006-02-23 | Vlad Stirbu | Caching directory server data for controlling the disposition of multimedia data on a network |
-
2005
- 2005-05-09 US US11/124,739 patent/US7634514B2/en not_active Expired - Fee Related
-
2006
- 2006-04-03 JP JP2008511119A patent/JP2008541263A/ja active Pending
- 2006-04-03 KR KR1020077023746A patent/KR20080006558A/ko not_active Application Discontinuation
- 2006-04-03 EP EP06740234A patent/EP1880321A4/en not_active Withdrawn
- 2006-04-03 WO PCT/US2006/011980 patent/WO2006121526A2/en active Application Filing
- 2006-04-03 CN CNA2006800124760A patent/CN101523358A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567341A (zh) * | 2010-12-09 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 一种实现软件内外目录同步的方法和系统 |
CN102567341B (zh) * | 2010-12-09 | 2016-02-17 | 腾讯科技(深圳)有限公司 | 一种实现软件内外目录同步的方法和系统 |
CN104994177A (zh) * | 2015-08-06 | 2015-10-21 | 上海爱数软件有限公司 | 网盘系统的同步方法、终端设备和网盘系统 |
CN108885559A (zh) * | 2016-03-29 | 2018-11-23 | 微软技术许可有限责任公司 | 在多个处理器之间快速转移工作负载 |
CN108885559B (zh) * | 2016-03-29 | 2021-12-03 | 微软技术许可有限责任公司 | 在多个处理器之间快速转移工作负载 |
CN111566620A (zh) * | 2018-01-08 | 2020-08-21 | 赫尔环球有限公司 | 用于提供基于位置的服务的分布式处理系统和方法 |
CN112162964A (zh) * | 2020-10-15 | 2021-01-01 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
CN112162964B (zh) * | 2020-10-15 | 2024-04-05 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1880321A2 (en) | 2008-01-23 |
JP2008541263A (ja) | 2008-11-20 |
WO2006121526A2 (en) | 2006-11-16 |
WO2006121526A3 (en) | 2008-01-10 |
EP1880321A4 (en) | 2010-09-22 |
US20060253501A1 (en) | 2006-11-09 |
US7634514B2 (en) | 2009-12-15 |
KR20080006558A (ko) | 2008-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101523358A (zh) | 文件系统目录的快速、可靠同步 | |
EP2260413B1 (en) | Web content management | |
JP6309969B2 (ja) | オンラインストレージシステムでのデータ同期化に関するアプリケーションプログラミングインタフェース | |
KR101138491B1 (ko) | 동기화 방법 및 시스템 | |
KR102015673B1 (ko) | 테넌트 이동에 걸친 테넌트 데이터의 복구 | |
CN101650660B (zh) | 从中央存储装置引导计算机系统 | |
US20140033082A1 (en) | System and method for data-driven web page navigation control | |
CN109906433A (zh) | 针对容器的存储隔离 | |
CN105474206A (zh) | 支持按需数据传输的虚拟同步 | |
CN104040525B (zh) | 通过网络连接访问覆盖介质 | |
KR101212858B1 (ko) | 동기화 방법 및 시스템 | |
WO2015073266A2 (en) | Sharing a file via email | |
JP2012520504A (ja) | デバイスおよびウェブ・サービスにわたってブラウザー・キャッシュを同期させるためのプログラミング・モデル | |
CN101090356A (zh) | 使能对远程存储装置的访问的方法和系统 | |
US20140372872A1 (en) | Content migration tool and method associated therewith | |
WO2009100156A1 (en) | Automatic connections between application components | |
CN102685194A (zh) | 存储设备迁移和重定向 | |
US5781902A (en) | Method, computer program product, and system for extending the capabilities of an existing process to store and display foreign data | |
US20110041119A1 (en) | Storing z/os product tag information within z/os load module datasets | |
Singh et al. | Pro Sync Framework | |
CN118525267A (zh) | 经由源代码管理平台注释的超级应用扩展发现和配置 | |
JP2006285620A (ja) | アプリケーション実行管理システム、コンピュータ装置、アプリケーション実行管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20090902 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |