US20080294860A1 - System and program for replicating a file - Google Patents
System and program for replicating a file Download PDFInfo
- Publication number
- US20080294860A1 US20080294860A1 US12/130,874 US13087408A US2008294860A1 US 20080294860 A1 US20080294860 A1 US 20080294860A1 US 13087408 A US13087408 A US 13087408A US 2008294860 A1 US2008294860 A1 US 2008294860A1
- Authority
- US
- United States
- Prior art keywords
- file
- delta
- target storage
- base
- storage
- 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.)
- Abandoned
Links
Images
Classifications
-
- 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
-
- 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/99953—Recoverability
-
- 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
Definitions
- the present invention relates to a method, system, and program for replicating a file.
- File replication involves maintaining a copy (replica) of a file on a remote storage that may be updated locally. Any local updates applied to the file subject to replication are copied over (replicated) to the remote storage.
- IBM International Business Machines
- Tivoli® Storage Manager product provides software for a client and server systems so that the client system backs-up only a changed portion of a file on the server, either on byte level or on block level, instead of transferring the whole file to the server every time.
- the changed file portion is backed up as a differential backup relative to the last complete backup of the file (base or reference file) and it is called delta file. All changes since the last complete backup of the file are included in this delta file.
- software provides for the restore of the whole file by restoring only two sub-file components, one delta file and the last complete backup of the whole file, the base file.
- the IBM Tivoli Storage Manager requires that the replication operations are implemented in software programs that run on both the client and the server storage receiving the delta files.
- proprietary agent software is implemented in both the endpoints, client and server machines, to exchange information and messages as part of the replication process.
- a file is copied to a target storage file system stored as a base file.
- a reference file comprising the copied file is generated at a local storage.
- An update is applied to the file at the local storage.
- a delta file is generated indicating differences between the updated file at the local storage and the reference file.
- a file system command is used to transmit the delta file to the target storage file system store to store in a directory of the target storage file system, wherein the file in the local storage is replicated at the target storage by a combination of the base file and the delta file.
- a request is received to access a file in a file system in a storage device.
- a determination is made as to determining whether there is a delta file for the requested file providing changes to a base file in the storage device.
- the changes in the delta file are applied to the base file for the accessed file to produce a current version of the file in response to determining that there is a delta file.
- the current version of the file is generated on an output device.
- FIG. 1 illustrates an embodiment of a network computing environment.
- FIG. 2 illustrates an embodiment of a file name of a delta file.
- FIGS. 3 , 4 , 5 , and 6 illustrate embodiments of operations to replicate a file on a storage.
- FIG. 1 illustrates a network computing environment having a plurality of user systems 2 a and 2 b (two are shown) that communicate with a target storage 4 over a network 6 .
- the user systems 2 a and 2 b include a file system 8 a , 8 b , which includes a replication extension 10 a , 10 b component. If the user of the user system 2 a designates that a file 12 is subject to replication in the target storage 4 , then the replication extension 10 a , 10 b monitors requests directed to the file 12 subject to replication to ensure modifications are transferred to the replication site, i.e., target storage 4 .
- the replication extension 10 a , 10 b may execute in the kernel space of the user systems 2 a , 2 b with the file system 8 a , 8 b.
- the replication extension 10 a maintains a reference file 14 comprising a copy of the base file 12 sent to the target storage 4 , where the base file is stored as file 16 in a target storage file system 18 .
- the replication extension 10 a places any updates to the file 12 in a delta file 20 and transmits the delta file 20 to the target storage 4 to store in the target storage file system 18 .
- the files 12 being replicated and their corresponding reference files 14 may be stored at a local storage 22 connected to the user system 2 a , such as an attached storage device or local hard disk drives or memory.
- the target storage 4 may comprise a hard disk drive or storage unit within or directly coupled to the user system 2 a from which the file 12 is being sent, so that replication occurs locally at the user system 2 a on a local hard drive, such as an internal or external hard disk drive coupled directly to the user system 2 a.
- the replication extension 10 a uses a standard file system 8 a , 8 b command, such as a copy or save command, to transfer the delta file 20 to the target storage file system 18 .
- the replication extension 10 a may use an internal file Application Program Interface (API) command or a network transfer protocol command, such as a File Transfer Protocol (FTP) command to send a file.
- the delta file 20 may comprise an ordinary file in the target file system 18 .
- the replication extension 10 b may perform the operations described with respect to replication extension 10 a .
- the replication extensions 10 a , 10 b further intercept requests to access files 16 in the target storage system as described below.
- a file 12 replicated in the target file system 18 has a base file 16 initially sent from the user system 2 a and a delta file 20 .
- the delta file 20 may have the same name as the file 16 , such as the name and application type extension, plus an additional extension indicating that the file is a delta file, e.g., “x.type.delta”.
- the delta file has a file name indicating an attribute of the delta file and base file.
- the attribute included in the delta file 20 file name may include a file size of the current version of the file, comprising the base file 16 combined with the differences indicated in the delta file 20 .
- the attribute included in the delta file 20 file name may comprise a code identifying the reference file 14 , i.e., initial base file, to which the delta file 20 applies.
- the replication extension 10 a , 10 b uses this code to check whether the file 16 in the target file system 18 matches the reference file 14 , which is the copy of the initial base file from which the delta file 20 was generated, so that the file produced by combining the base file 16 and the delta file 20 in the target file system 18 is the same updated file for which the delta file 20 was generated.
- the code comprises a checksum value derived by applying a checksum function to the reference file 14 , which is the original base file in the user system 2 a , and embedding that checksum value in the name of the delta file 20 .
- the replication extension 10 a , 10 b may then apply the same checksum function to the base file 16 in the target file system 18 to determine whether the base file 16 in the target storage 4 has not changed and is the same as the reference file 14 on the user system 2 a , so that when the delta file 20 is applied to the base file 16 in the target file system 18 the resulting updated file is the same as the current version of the file 12 in the user system 2 .
- the base file 16 and delta file 20 may be stored in a common directory in the target storage file system 18 . For instance, they might be in the same directory or have a common higher level directory, e.g., parent directory. Further, the delta file 20 may be stored in a predetermined directory location relative to the base file 16 , such as in a subdirectory of the directory including the delta file 20 , a directory storing delta files 20 for different base files 16 , or the same directory as the base file 16 .
- the users systems 2 a , 2 b may comprise any computing device capable of submitting requests or transactions over the network 6 to the target storage 4 , including desktop computers, notebook computers, workstations, hand held computers, servers, mainframes, telephony devices, etc.
- the user systems 2 a , 2 b may also comprise host systems or servers including storage devices having files updated by other network devices.
- the target storage 4 may comprise a storage device or system known in the art having a file system 20 , including a Redundant Array of Independent Disks (RAID), interconnected hard disk drives, a tape library, an optical library, a network attached storage (NAS), etc.
- the target storage 4 further includes a controller to execute requests for files in the target storage file system 20 .
- the network 6 may comprise one or more networks known in the art, such as a Wide Area Network (WAN), Local Area Network (LAN), Storage Area Network (SAN), wireless network, the Internet, and Intranet, etc.
- the file system 8 a , 8 b may comprise the file system component of operating systems known in the art, such as Microsoft Corporation's Windows®, LinuxTM, Unix®, etc. (Windows is a registered trademark of Microsoft Corporation, Linux is a trademark of Linus Torvalds, and Unix is a registered trademark of The Open Group.)
- FIG. 2 illustrates an embodiment of information included in a delta file 20 file name 50 , including a file name 52 portion comprising the file name, e.g., “X” as shown in FIG. 1 ; a data format 54 or file type, e.g., “type” in FIG. 2 , indicating a format of the data or the application for which the data is intended; and a delta extension indicator 56 indicating that the file is a delta file providing updates to a base file having a name comprising the file name 52 and data format 54 components of the delta file name 50 , e.g., “x.type”, which are the first two components of the delta file name x.type.delta” shown in FIG. 1 .
- a checksum value 58 comprises a checksum of the reference file 12 , which is the base file the user system 2 a initially transmitted to the target storage 4 .
- the file size 60 comprises a file size of the current version of the file, comprising the reference file 12 combined with the updates in the delta file 20 .
- each delta file 20 comprises a differential backup file including all changes that have been applied to the base file 12 , stored as the reference file 14 , that was copied to the base file 16 in the target storage 4 .
- there may be multiple incremental delta files for a file 12 where each incremental delta includes changes since the last modification to the file.
- multiple incremental delta files would be stored in the target storage file system 18 supplying the modifications to the base file 16 that produce the current version of the file 12 .
- FIG. 3 illustrates an embodiment of operations performed by the replication extension 10 a to maintain a replica of a file 12 at the user system 2 a in the target storage 4 .
- Operations described with respect to replication extension 10 b may be performed by other replication extensions 10 b to file systems 8 b in the network 6 .
- the replication extension 10 a copies (at block 102 ) the file 12 to replicate to a target storage file system 18 , which is stored as base file 16 .
- the replication extension 10 a may use a standard file system command to transfer the file 12 to the target storage file system 18 , such as a copy or save command.
- the replication extension 10 a generates (at block 104 ) a reference file 14 comprising the copied file 12 at a local storage 22 .
- An update to the file 12 at the local storage 22 is applied (at block 106 ).
- the replication extension 10 a which may be triggered in response to a modification of the file 12 subject to replication, then generates (at block 108 ) a delta file 20 indicating differences between the updated file at the local storage 22 and the reference file 14 .
- the generated delta file 20 may have the file name of the file 12 being replicated including in the file name 52 field, data format/data type 54 , delta indicator 56 , checksum value 58 determined by applying a checksum function to the initial file 12 (copied as the reference file 14 ), and a file size 60 of the updated file 12 .
- the replication extension 10 a uses (at block 110 ) a file system command, e.g., copy or save command, to transmit the delta file 20 to the target storage file system 18 to store in a directory of the target storage file system 18 .
- the file 12 in the local storage 22 is replicated at the target storage 4 by the combination of the base file 16 and the delta file 20 .
- the delta file 20 and base file 16 may be stored as ordinary files in the target storage file system 18 .
- the replication extension 10 a , 10 b may detect changes to files 12 subject to replication and in response perform the operations at block 108 and 110 .
- the operations at block 102 and 104 may be performed when a file 12 is initially subject to replication. Further, if the delta file 20 exceeds the base file 12 by a certain threshold, e.g., 60%, then the current version of the file 12 may be transmitted to the target storage 4 to replace the base file 16 and a new reference file 14 may be created for the current version of the file 12 so that deltas will be applied to the current version of the file 12 .
- a certain threshold e.g. 60%
- FIG. 4 illustrates operations implemented in a replication extension 10 a , 10 b to access a file subject to replication.
- the replication extension 10 a , 10 b determines (at block 154 ) whether there is a delta file 20 for the requested file providing changes to a base file 12 in the storage 4 . If not, then access is provided (at block 156 ) to the requested file. Otherwise if there is a delta file 20 , then the replication extension 10 b uses (at block 158 ) a code associated with the delta file 20 to determine whether the delta file provides changes to the base file.
- Using the code may comprise determining a checksum value from the base file 16 in the storage device 4 by a applying a checksum function to the base file 16 . Further, a determination is made (at block 160 ) as to whether the determined checksum value from the base file 16 matches the code, e.g., checksum value 58 , associated with the delta file (e.g., component 58 in the file name 50 ( FIG. 2 ) of the delta file 20 ). If (at block 160 ) the checksums do not match, then the file 16 in the target storage 4 may have been modified and is different from the base file stored as the reference file 14 . In such case, an error condition is indicated (at block 162 ).
- the code e.g., checksum value 58
- the changes in the delta file 20 are applied (at block 164 ) to the base file 12 for the accessed file to produce a current version of the file, which should match the updated file 12 in the user system 2 a .
- the replication extension 10 a , 10 b then generates (at block 166 ) the current version of the file on an output device (not shown), which may comprise a video display monitor, paper, etc.
- the replication extension 10 a , 10 b may generate the current version to the user transparently.
- a user in a standard application such as a word processing application, may open a dialogue box to view a list of files and will see a list that does not show any delta files 20 , only the base file 16 names. If the user selects to open one of the displayed files, then the replication extension 10 a , 10 b would generate the current version comprising the base file 16 combined with the delta file 20 .
- the replication extension 10 a , 10 b operations occur transparently to the user without requiring the user to invoke any additional applications.
- the replication extension 10 a , 10 b Upon the file system 8 a , 8 b receiving (at block 168 ) modifications to the current version of the file to produce a modification to the file in the target storage 4 , the replication extension 10 a , 10 b generates (at block 170 ) a new delta file indicating differences between the modified file and the base file 16 in the target storage file system 18 .
- the new delta file 20 is stored (at block 172 ) in the target file system 18 .
- FIG. 5 illustrates operations performed by the replication extension 10 a , 10 b to provide information on attributes of a replicated file.
- the replication extension 10 a , 10 b determines (at block 202 ) from a file name 50 ( FIG. 2 ) of the delta file 20 the requested attribute (e.g., the file size of the current version). For instance, in FIG. 2 the file size attribute is indicated in component 60 of the file name 50 .
- the replication extension 10 a , 10 b then provides (at block 204 ) information on the requested attribute (e.g., file size).
- the described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
- article of manufacture refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.).
- hardware logic e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.
- a computer readable medium such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-
- Code in the computer readable medium is accessed and executed by a processor.
- the code in which preferred embodiments are implemented may further be accessible through a transmission media or from a file server over a network.
- the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc.
- the “article of manufacture” may comprise the medium in which the code is embodied.
- the “article of manufacture” may comprise a combination of hardware and software components in which the code is embodied, processed, and executed.
- the article of manufacture may comprise any information bearing medium known in the art.
- Certain operations described as performed by the replication extension may be performed by the file system.
- FIGS. 3-5 show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.
Abstract
Provided are a method, system, and program for replicating a file. A file is copied to a target storage file system stored as a base file. A reference file comprising the copied file is generated at a local storage. An update is applied to the file at the local storage. A delta file is generated indicating differences between the updated file at the local storage and the reference file. A file system command is used to transmit the delta file to the target storage file system store to store in a directory of the target storage file system, wherein the file in the local storage is replicated at the target storage by a combination of the base file and the delta file.
Description
- This application is a continuation of U.S. patent application Ser. No. 10/958,724, filed on Oct. 4, 2004, which patent application is incorporated herein by reference in its entirety.
- 1. Field of the Invention
- The present invention relates to a method, system, and program for replicating a file.
- 2. Description of the Related Art
- File replication involves maintaining a copy (replica) of a file on a remote storage that may be updated locally. Any local updates applied to the file subject to replication are copied over (replicated) to the remote storage. For instance, the International Business Machines (“IBM”®) Tivoli® Storage Manager product provides software for a client and server systems so that the client system backs-up only a changed portion of a file on the server, either on byte level or on block level, instead of transferring the whole file to the server every time. (IBM and Tivoli are registered trademarks of IBM) The changed file portion is backed up as a differential backup relative to the last complete backup of the file (base or reference file) and it is called delta file. All changes since the last complete backup of the file are included in this delta file. In the case of a restore, software provides for the restore of the whole file by restoring only two sub-file components, one delta file and the last complete backup of the whole file, the base file.
- The IBM Tivoli Storage Manager requires that the replication operations are implemented in software programs that run on both the client and the server storage receiving the delta files. Thus, proprietary agent software is implemented in both the endpoints, client and server machines, to exchange information and messages as part of the replication process.
- Provided are a method, system, and program for replicating a file. A file is copied to a target storage file system stored as a base file. A reference file comprising the copied file is generated at a local storage. An update is applied to the file at the local storage. A delta file is generated indicating differences between the updated file at the local storage and the reference file. A file system command is used to transmit the delta file to the target storage file system store to store in a directory of the target storage file system, wherein the file in the local storage is replicated at the target storage by a combination of the base file and the delta file.
- In an additional embodiment, a request is received to access a file in a file system in a storage device. A determination is made as to determining whether there is a delta file for the requested file providing changes to a base file in the storage device. The changes in the delta file are applied to the base file for the accessed file to produce a current version of the file in response to determining that there is a delta file. The current version of the file is generated on an output device.
-
FIG. 1 illustrates an embodiment of a network computing environment. -
FIG. 2 illustrates an embodiment of a file name of a delta file. -
FIGS. 3 , 4, 5, and 6 illustrate embodiments of operations to replicate a file on a storage. - In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several embodiments of the present invention. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of the present invention.
-
FIG. 1 illustrates a network computing environment having a plurality ofuser systems target storage 4 over anetwork 6. Theuser systems file system 8 a, 8 b, which includes areplication extension user system 2 a designates that afile 12 is subject to replication in thetarget storage 4, then thereplication extension file 12 subject to replication to ensure modifications are transferred to the replication site, i.e.,target storage 4. Thereplication extension user systems file system 8 a, 8 b. - The
replication extension 10 a maintains areference file 14 comprising a copy of thebase file 12 sent to thetarget storage 4, where the base file is stored asfile 16 in a targetstorage file system 18. Thereplication extension 10 a places any updates to thefile 12 in adelta file 20 and transmits thedelta file 20 to thetarget storage 4 to store in the targetstorage file system 18. Thefiles 12 being replicated and theircorresponding reference files 14 may be stored at alocal storage 22 connected to theuser system 2 a, such as an attached storage device or local hard disk drives or memory. In an alternative embodiment, thetarget storage 4 may comprise a hard disk drive or storage unit within or directly coupled to theuser system 2 a from which thefile 12 is being sent, so that replication occurs locally at theuser system 2 a on a local hard drive, such as an internal or external hard disk drive coupled directly to theuser system 2 a. - In certain embodiments, the
replication extension 10 a uses astandard file system 8 a, 8 b command, such as a copy or save command, to transfer thedelta file 20 to the targetstorage file system 18. In further embodiments, thereplication extension 10 a may use an internal file Application Program Interface (API) command or a network transfer protocol command, such as a File Transfer Protocol (FTP) command to send a file. Thedelta file 20 may comprise an ordinary file in thetarget file system 18. Thereplication extension 10 b may perform the operations described with respect toreplication extension 10 a. Thereplication extensions files 16 in the target storage system as described below. - A
file 12 replicated in thetarget file system 18 has abase file 16 initially sent from theuser system 2 a and adelta file 20. In one embodiment, thedelta file 20 may have the same name as thefile 16, such as the name and application type extension, plus an additional extension indicating that the file is a delta file, e.g., “x.type.delta”. In one embodiment, the delta file has a file name indicating an attribute of the delta file and base file. For instance, the attribute included in thedelta file 20 file name may include a file size of the current version of the file, comprising thebase file 16 combined with the differences indicated in thedelta file 20. Further, the attribute included in thedelta file 20 file name may comprise a code identifying thereference file 14, i.e., initial base file, to which thedelta file 20 applies. Thereplication extension file 16 in thetarget file system 18 matches thereference file 14, which is the copy of the initial base file from which thedelta file 20 was generated, so that the file produced by combining thebase file 16 and thedelta file 20 in thetarget file system 18 is the same updated file for which thedelta file 20 was generated. In one embodiment, the code comprises a checksum value derived by applying a checksum function to thereference file 14, which is the original base file in theuser system 2 a, and embedding that checksum value in the name of thedelta file 20. Thereplication extension base file 16 in thetarget file system 18 to determine whether thebase file 16 in thetarget storage 4 has not changed and is the same as thereference file 14 on theuser system 2 a, so that when thedelta file 20 is applied to thebase file 16 in thetarget file system 18 the resulting updated file is the same as the current version of thefile 12 in the user system 2. - In one embodiment, the
base file 16 anddelta file 20 may be stored in a common directory in the targetstorage file system 18. For instance, they might be in the same directory or have a common higher level directory, e.g., parent directory. Further, thedelta file 20 may be stored in a predetermined directory location relative to thebase file 16, such as in a subdirectory of the directory including thedelta file 20, a directory storingdelta files 20 fordifferent base files 16, or the same directory as thebase file 16. - The users systems 2 a, 2 b may comprise any computing device capable of submitting requests or transactions over the
network 6 to thetarget storage 4, including desktop computers, notebook computers, workstations, hand held computers, servers, mainframes, telephony devices, etc. Theuser systems target storage 4 may comprise a storage device or system known in the art having afile system 20, including a Redundant Array of Independent Disks (RAID), interconnected hard disk drives, a tape library, an optical library, a network attached storage (NAS), etc. Thetarget storage 4 further includes a controller to execute requests for files in the targetstorage file system 20. Thenetwork 6 may comprise one or more networks known in the art, such as a Wide Area Network (WAN), Local Area Network (LAN), Storage Area Network (SAN), wireless network, the Internet, and Intranet, etc. Thefile system 8 a, 8 b may comprise the file system component of operating systems known in the art, such as Microsoft Corporation's Windows®, Linux™, Unix®, etc. (Windows is a registered trademark of Microsoft Corporation, Linux is a trademark of Linus Torvalds, and Unix is a registered trademark of The Open Group.) -
FIG. 2 illustrates an embodiment of information included in adelta file 20file name 50, including afile name 52 portion comprising the file name, e.g., “X” as shown inFIG. 1 ; adata format 54 or file type, e.g., “type” inFIG. 2 , indicating a format of the data or the application for which the data is intended; and adelta extension indicator 56 indicating that the file is a delta file providing updates to a base file having a name comprising thefile name 52 anddata format 54 components of thedelta file name 50, e.g., “x.type”, which are the first two components of the delta file name x.type.delta” shown inFIG. 1 . Achecksum value 58 comprises a checksum of thereference file 12, which is the base file theuser system 2 a initially transmitted to thetarget storage 4. Thefile size 60 comprises a file size of the current version of the file, comprising thereference file 12 combined with the updates in thedelta file 20. - In certain embodiments, each
delta file 20 comprises a differential backup file including all changes that have been applied to thebase file 12, stored as thereference file 14, that was copied to thebase file 16 in thetarget storage 4. In alternative embodiments, there may be multiple incremental delta files for afile 12, where each incremental delta includes changes since the last modification to the file. In such incremental delta embodiments, multiple incremental delta files would be stored in the targetstorage file system 18 supplying the modifications to thebase file 16 that produce the current version of thefile 12. -
FIG. 3 illustrates an embodiment of operations performed by thereplication extension 10 a to maintain a replica of afile 12 at theuser system 2 a in thetarget storage 4. Operations described with respect toreplication extension 10 b may be performed byother replication extensions 10 b to filesystems 8 b in thenetwork 6. Upon initiating (at block 100) operations to replicate afile 12 at atarget storage device 4, thereplication extension 10 a copies (at block 102) thefile 12 to replicate to a targetstorage file system 18, which is stored asbase file 16. In one embodiment, thereplication extension 10 a may use a standard file system command to transfer thefile 12 to the targetstorage file system 18, such as a copy or save command. Transmitting the delta files using standard file system commands avoids the use of additional protocol layers in theuser systems target storage 4 to handle the transfer of delta files. Thereplication extension 10 a generates (at block 104) areference file 14 comprising the copiedfile 12 at alocal storage 22. An update to thefile 12 at thelocal storage 22 is applied (at block 106). Thereplication extension 10 a, which may be triggered in response to a modification of thefile 12 subject to replication, then generates (at block 108) adelta file 20 indicating differences between the updated file at thelocal storage 22 and thereference file 14. The generateddelta file 20 may have the file name of thefile 12 being replicated including in thefile name 52 field, data format/data type 54,delta indicator 56, checksumvalue 58 determined by applying a checksum function to the initial file 12 (copied as the reference file 14), and afile size 60 of the updatedfile 12. Thereplication extension 10 a uses (at block 110) a file system command, e.g., copy or save command, to transmit thedelta file 20 to the targetstorage file system 18 to store in a directory of the targetstorage file system 18. Thefile 12 in thelocal storage 22 is replicated at thetarget storage 4 by the combination of thebase file 16 and thedelta file 20. Further, thedelta file 20 andbase file 16 may be stored as ordinary files in the targetstorage file system 18. - In one embodiment, the
replication extension files 12 subject to replication and in response perform the operations atblock block file 12 is initially subject to replication. Further, if thedelta file 20 exceeds thebase file 12 by a certain threshold, e.g., 60%, then the current version of thefile 12 may be transmitted to thetarget storage 4 to replace thebase file 16 and anew reference file 14 may be created for the current version of thefile 12 so that deltas will be applied to the current version of thefile 12. -
FIG. 4 illustrates operations implemented in areplication extension file 12 infile system 18 in a storage device, e.g.,target storage 4, thereplication extension delta file 20 for the requested file providing changes to abase file 12 in thestorage 4. If not, then access is provided (at block 156) to the requested file. Otherwise if there is adelta file 20, then thereplication extension 10 b uses (at block 158) a code associated with thedelta file 20 to determine whether the delta file provides changes to the base file. Using the code may comprise determining a checksum value from thebase file 16 in thestorage device 4 by a applying a checksum function to thebase file 16. Further, a determination is made (at block 160) as to whether the determined checksum value from thebase file 16 matches the code, e.g., checksumvalue 58, associated with the delta file (e.g.,component 58 in the file name 50 (FIG. 2 ) of the delta file 20). If (at block 160) the checksums do not match, then thefile 16 in thetarget storage 4 may have been modified and is different from the base file stored as thereference file 14. In such case, an error condition is indicated (at block 162). Otherwise, if (at block 160) the checksums match (which occurs if thefile 16 at thetarget storage 4 is the initial base file copied over, which is stored as thereference file 14 in the local storage 22), then the changes in thedelta file 20 are applied (at block 164) to thebase file 12 for the accessed file to produce a current version of the file, which should match the updatedfile 12 in theuser system 2 a. Thereplication extension - With certain embodiments, the
replication extension base file 16 names. If the user selects to open one of the displayed files, then thereplication extension base file 16 combined with thedelta file 20. Thereplication extension - Upon the
file system 8 a, 8 b receiving (at block 168) modifications to the current version of the file to produce a modification to the file in thetarget storage 4, thereplication extension base file 16 in the targetstorage file system 18. Thenew delta file 20 is stored (at block 172) in thetarget file system 18. -
FIG. 5 illustrates operations performed by thereplication extension replication extension FIG. 2 ) of thedelta file 20 the requested attribute (e.g., the file size of the current version). For instance, inFIG. 2 the file size attribute is indicated incomponent 60 of thefile name 50. Thereplication extension - The described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The code in which preferred embodiments are implemented may further be accessible through a transmission media or from a file server over a network. In such cases, the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. Thus, the “article of manufacture” may comprise the medium in which the code is embodied. Additionally, the “article of manufacture” may comprise a combination of hardware and software components in which the code is embodied, processed, and executed. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise any information bearing medium known in the art.
- Certain operations described as performed by the replication extension may be performed by the file system.
- The illustrated operations of
FIGS. 3-5 show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units. - The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Claims (14)
1. A system in communication with a target storage file system having at least one directory, comprising:
a local storage;
a processor in communication with the local storage;
a computer readable medium including code executed by the processor to perform operations, the operations comprising:
copying a file in the local storage subject to replication to the target storage file system to store as a base file in the target storage file system;
generating a reference file comprising a copy of the file subject to replication that is copied to the target storage file system;
applying an update to the file subject to replication at the local storage to generate an updated file at the local storage;
generating a delta file indicating differences between the updated file at the local storage and the reference file;
generating a code identifying the reference file;
using a file system command to transmit the delta file to the target storage file system to store in one directory of the target storage file system;
receiving a replication request to replicate the updated file from the delta file in the target storage file system;
using the code to determine whether the base file at the target storage file system matches the reference file at the local storage in response to the replication request; and
replicating the updated file from a combination of the base file and the delta file stored in the target storage in response to determining that the base file matches the reference file.
2. The system of claim 1 , wherein the base file and delta file are stored in a common directory in the target storage file system.
3. The system of claim 2 , wherein the delta file is stored in a predetermined directory location relative to the base file.
4. The system of claim 1 , wherein the delta file has a file name including a file name of the base file and includes an extension indicating a delta file type.
5. The system of claim 1 , wherein a file name of the delta file indicates a file size of the reference file on the local storage combined with the differences indicated in the delta file.
6. The system of claim 1 , wherein a file name of the delta file indicates the code identifying the reference file to which the delta applies.
7. The system of claim 1 , wherein the code comprises a checksum value calculated from the reference file and wherein using the code to determine whether the base file at the target storage file system matches the reference file comprises:
calculating a checksum value from the base file in the target storage file system; and
comparing the checksums calculated from the reference file system and the base file to determine whether they match.
8. An article of manufacture comprises a computer readable storage medium including code that when executed by a processor performs operations to communicate with a target storage file system and a local storage and to further perform operations comprising:
copying a file in the local storage subject to replication to the target storage file system to store as a base file in the target storage file system;
generating a reference file comprising a copy of the file subject to replication that is copied to the target storage file system;
applying an update to the file subject to replication at the local storage to generate an updated file at the local storage;
generating a delta file indicating differences between the updated file at the local storage and the reference file;
generating a code identifying the reference file;
using a file system command to transmit the delta file to the target storage file system to store in a directory of the target storage file system;
receiving a replication request to replicate the updated file from the delta file in the target storage file system;
using the code to determine whether the base file at the target storage file system matches the reference file at the local storage in response to the replication request; and
replicating the updated file from a combination of the base file and the delta file stored in the target storage in response to determining that the base file matches the reference file.
9. The article of manufacture of claim 8 , wherein the base file and delta file are stored in a common directory in the target storage file system.
10. The article of manufacture of claim 9 , wherein the delta file is stored in a predetermined directory location relative to the base file.
11. The article of manufacture of claim 8 , wherein the delta file has a file name including a file name of the base file and includes an extension indicating a delta file type.
12. The article of manufacture of claim 8 , a file name of the delta file comprises a file size of the reference file on the local storage combined with the differences indicated in the delta file.
13. The article of manufacture of claim 8 , wherein a file name of the delta file indicates the code identifying the reference file to which the delta applies.
14. The article of manufacture of claim 8 , wherein the code comprises a checksum value calculated from the reference file and wherein using the code to determine whether the base file at the target storage file system matches the reference file comprises:
calculating a checksum value from the base file in the target storage file system; and
comparing the checksums calculated from the reference file system and the base file to determine whether they match.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/130,874 US20080294860A1 (en) | 2004-10-04 | 2008-05-30 | System and program for replicating a file |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/958,724 US7401192B2 (en) | 2004-10-04 | 2004-10-04 | Method of replicating a file using a base, delta, and reference file |
US12/130,874 US20080294860A1 (en) | 2004-10-04 | 2008-05-30 | System and program for replicating a file |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/958,724 Continuation US7401192B2 (en) | 2004-10-04 | 2004-10-04 | Method of replicating a file using a base, delta, and reference file |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080294860A1 true US20080294860A1 (en) | 2008-11-27 |
Family
ID=36126899
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/958,724 Active 2025-11-27 US7401192B2 (en) | 2004-10-04 | 2004-10-04 | Method of replicating a file using a base, delta, and reference file |
US12/130,874 Abandoned US20080294860A1 (en) | 2004-10-04 | 2008-05-30 | System and program for replicating a file |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/958,724 Active 2025-11-27 US7401192B2 (en) | 2004-10-04 | 2004-10-04 | Method of replicating a file using a base, delta, and reference file |
Country Status (1)
Country | Link |
---|---|
US (2) | US7401192B2 (en) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664834B2 (en) | 2004-07-09 | 2010-02-16 | Maxsp Corporation | Distributed operating system management |
US7840514B2 (en) | 2006-09-22 | 2010-11-23 | Maxsp Corporation | Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection |
US7844686B1 (en) | 2006-12-21 | 2010-11-30 | Maxsp Corporation | Warm standby appliance |
US7908339B2 (en) * | 2004-06-03 | 2011-03-15 | Maxsp Corporation | Transaction based virtual file system optimized for high-latency network connections |
US8099605B1 (en) * | 2006-06-05 | 2012-01-17 | InventSec AB | Intelligent storage device for backup system |
US8175418B1 (en) | 2007-10-26 | 2012-05-08 | Maxsp Corporation | Method of and system for enhanced data storage |
US8234238B2 (en) | 2005-03-04 | 2012-07-31 | Maxsp Corporation | Computer hardware and software diagnostic and report system |
US8307239B1 (en) | 2007-10-26 | 2012-11-06 | Maxsp Corporation | Disaster recovery appliance |
US20130036092A1 (en) * | 2011-08-03 | 2013-02-07 | Amadeus S.A.S. | Method and System to Maintain Strong Consistency of Distributed Replicated Contents in a Client/Server System |
US8423821B1 (en) | 2006-12-21 | 2013-04-16 | Maxsp Corporation | Virtual recovery server |
US20130185260A1 (en) * | 2012-01-17 | 2013-07-18 | Nathan Daniel Weinstein | Data backup and restoral apparatus, system, and methods |
US8589323B2 (en) | 2005-03-04 | 2013-11-19 | Maxsp Corporation | Computer hardware and software diagnostic and report system incorporating an expert system and agents |
US8645515B2 (en) | 2007-10-26 | 2014-02-04 | Maxsp Corporation | Environment manager |
US8667273B1 (en) | 2006-05-30 | 2014-03-04 | Leif Olov Billstrom | Intelligent file encryption and secure backup system |
US8812613B2 (en) | 2004-06-03 | 2014-08-19 | Maxsp Corporation | Virtual application manager |
US8811396B2 (en) | 2006-05-24 | 2014-08-19 | Maxsp Corporation | System for and method of securing a network utilizing credentials |
US8898319B2 (en) | 2006-05-24 | 2014-11-25 | Maxsp Corporation | Applications and services as a bundle |
US9317506B2 (en) | 2006-09-22 | 2016-04-19 | Microsoft Technology Licensing, Llc | Accelerated data transfer using common prior data segments |
US9357031B2 (en) | 2004-06-03 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applications as a service |
US10148433B1 (en) | 2009-10-14 | 2018-12-04 | Digitalpersona, Inc. | Private key/public key resource protection scheme |
US11328096B2 (en) | 2019-04-30 | 2022-05-10 | JFrog, Ltd. | Data bundle generation and deployment |
US11340894B2 (en) * | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US11502851B2 (en) | 2019-07-19 | 2022-11-15 | JFrog Ltd. | Software release verification |
US11533331B2 (en) | 2019-07-19 | 2022-12-20 | JFrog Ltd. | Software release tracking and logging |
US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277901B2 (en) * | 2003-07-10 | 2007-10-02 | Tacit Networks, Inc. | Collaborative file update system |
US7657533B2 (en) * | 2003-11-26 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Data management systems, data management system storage devices, articles of manufacture, and data management methods |
US7420956B2 (en) * | 2004-04-16 | 2008-09-02 | Broadcom Corporation | Distributed storage and aggregation of multimedia information via a broadband access gateway |
US7930693B2 (en) * | 2005-04-04 | 2011-04-19 | Cisco Technology, Inc. | Method and system for accessing and launching a java based applet as a locally installed application |
US20070168721A1 (en) * | 2005-12-22 | 2007-07-19 | Nokia Corporation | Method, network entity, system, electronic device and computer program product for backup and restore provisioning |
US20070168433A1 (en) * | 2006-01-18 | 2007-07-19 | Morgan Fabian F | System and method for managing an instant messaging contact list |
US7844652B2 (en) * | 2006-04-11 | 2010-11-30 | Emc Corporation | Efficient computation of sketches |
US7949824B2 (en) * | 2006-04-11 | 2011-05-24 | Emc Corporation | Efficient data storage using two level delta resemblance |
US7562186B2 (en) * | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
US8001385B2 (en) * | 2006-06-21 | 2011-08-16 | Intel Corporation | Method and apparatus for flash updates with secure flash |
US8589341B2 (en) * | 2006-12-04 | 2013-11-19 | Sandisk Il Ltd. | Incremental transparent file updating |
CN101589386B (en) * | 2006-12-04 | 2013-03-27 | 桑迪士克Il有限公司 | Incremental transparent file updating |
DE102006057977A1 (en) * | 2006-12-08 | 2008-06-12 | Siemens Ag | Method and apparatus for updating a database and computer program product |
US20080154986A1 (en) * | 2006-12-22 | 2008-06-26 | Storage Technology Corporation | System and Method for Compression of Data Objects in a Data Storage System |
US7840544B2 (en) * | 2007-12-04 | 2010-11-23 | Cisco Technology, Inc. | Method for storing universal network performance and historical data |
WO2009132261A1 (en) * | 2008-04-25 | 2009-10-29 | Vmware, Inc. | Updating a file using differences and file format therefor |
US8078957B2 (en) | 2008-05-02 | 2011-12-13 | Microsoft Corporation | Document synchronization over stateless protocols |
US8219526B2 (en) * | 2009-06-05 | 2012-07-10 | Microsoft Corporation | Synchronizing file partitions utilizing a server storage model |
US8600935B1 (en) | 2010-03-03 | 2013-12-03 | Symantec Corporation | Systems and methods for achieving file-level data-protection operations using block-level technologies |
US8954544B2 (en) | 2010-09-30 | 2015-02-10 | Axcient, Inc. | Cloud-based virtual machines and offices |
US9705730B1 (en) | 2013-05-07 | 2017-07-11 | Axcient, Inc. | Cloud storage using Merkle trees |
US8589350B1 (en) | 2012-04-02 | 2013-11-19 | Axcient, Inc. | Systems, methods, and media for synthesizing views of file system backups |
US8924360B1 (en) * | 2010-09-30 | 2014-12-30 | Axcient, Inc. | Systems and methods for restoring a file |
US10284437B2 (en) | 2010-09-30 | 2019-05-07 | Efolder, Inc. | Cloud-based virtual machines and offices |
US9235474B1 (en) | 2011-02-17 | 2016-01-12 | Axcient, Inc. | Systems and methods for maintaining a virtual failover volume of a target computing system |
US20130024850A1 (en) | 2011-07-18 | 2013-01-24 | Honeywell International Inc. | Systems, methods and apparatus for fast file transfer |
US9785647B1 (en) | 2012-10-02 | 2017-10-10 | Axcient, Inc. | File system virtualization |
GB2507751A (en) * | 2012-11-07 | 2014-05-14 | Ibm | Storing data files in a file system which provides reference data files |
US9852140B1 (en) | 2012-11-07 | 2017-12-26 | Axcient, Inc. | Efficient file replication |
US10387372B2 (en) * | 2012-11-09 | 2019-08-20 | o9 Solutions, Inc. | Value-based differential data |
US9292153B1 (en) | 2013-03-07 | 2016-03-22 | Axcient, Inc. | Systems and methods for providing efficient and focused visualization of data |
US9397907B1 (en) | 2013-03-07 | 2016-07-19 | Axcient, Inc. | Protection status determinations for computing devices |
US9257049B2 (en) | 2014-01-29 | 2016-02-09 | Honeywell International Inc. | Method for management of air traffic control center database used for air traffic control center logon |
US11340769B2 (en) | 2014-03-31 | 2022-05-24 | Microsoft Technology Licensing, Llc | Generating content items out of an electronic communication workflow |
US10404637B2 (en) | 2014-03-31 | 2019-09-03 | Microsoft Technology Licensing, Llc | Electronic communication-based storage of documents to support multiple workflows |
US10466882B2 (en) | 2014-03-31 | 2019-11-05 | Microsoft Technology Licensing, Llc | Collaborative co-authoring via an electronic user interface |
KR101715816B1 (en) * | 2015-08-26 | 2017-03-13 | (주)포제 | Apparatus for securing information using accessibility method thereof |
CN106708651B (en) * | 2016-11-16 | 2020-09-11 | 北京三快在线科技有限公司 | Partial writing method and device based on erasure codes, storage medium and equipment |
US10846377B2 (en) * | 2018-08-17 | 2020-11-24 | Citrix Systems, Inc. | Secure file sharing using semantic watermarking |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634052A (en) * | 1994-10-24 | 1997-05-27 | International Business Machines Corporation | System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server |
US6269381B1 (en) * | 1998-06-30 | 2001-07-31 | Emc Corporation | Method and apparatus for backing up data before updating the data and for restoring from the backups |
US20020147849A1 (en) * | 2001-04-05 | 2002-10-10 | Chung-Kei Wong | Delta encoding using canonical reference files |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US20030018657A1 (en) * | 2001-07-18 | 2003-01-23 | Imation Corp. | Backup of data on a network |
US6549918B1 (en) * | 1998-09-21 | 2003-04-15 | Microsoft Corporation | Dynamic information format conversion |
US6604236B1 (en) * | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US20030182325A1 (en) * | 2002-03-19 | 2003-09-25 | Manley Stephen L. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
US6651075B1 (en) * | 2000-02-16 | 2003-11-18 | Microsoft Corporation | Support for multiple temporal snapshots of same volume |
-
2004
- 2004-10-04 US US10/958,724 patent/US7401192B2/en active Active
-
2008
- 2008-05-30 US US12/130,874 patent/US20080294860A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634052A (en) * | 1994-10-24 | 1997-05-27 | International Business Machines Corporation | System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server |
US6269381B1 (en) * | 1998-06-30 | 2001-07-31 | Emc Corporation | Method and apparatus for backing up data before updating the data and for restoring from the backups |
US6604236B1 (en) * | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6549918B1 (en) * | 1998-09-21 | 2003-04-15 | Microsoft Corporation | Dynamic information format conversion |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US6651075B1 (en) * | 2000-02-16 | 2003-11-18 | Microsoft Corporation | Support for multiple temporal snapshots of same volume |
US20020147849A1 (en) * | 2001-04-05 | 2002-10-10 | Chung-Kei Wong | Delta encoding using canonical reference files |
US20030018657A1 (en) * | 2001-07-18 | 2003-01-23 | Imation Corp. | Backup of data on a network |
US20030182325A1 (en) * | 2002-03-19 | 2003-09-25 | Manley Stephen L. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812613B2 (en) | 2004-06-03 | 2014-08-19 | Maxsp Corporation | Virtual application manager |
US7908339B2 (en) * | 2004-06-03 | 2011-03-15 | Maxsp Corporation | Transaction based virtual file system optimized for high-latency network connections |
US9357031B2 (en) | 2004-06-03 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applications as a service |
US9569194B2 (en) | 2004-06-03 | 2017-02-14 | Microsoft Technology Licensing, Llc | Virtual application manager |
US7664834B2 (en) | 2004-07-09 | 2010-02-16 | Maxsp Corporation | Distributed operating system management |
US8234238B2 (en) | 2005-03-04 | 2012-07-31 | Maxsp Corporation | Computer hardware and software diagnostic and report system |
US8589323B2 (en) | 2005-03-04 | 2013-11-19 | Maxsp Corporation | Computer hardware and software diagnostic and report system incorporating an expert system and agents |
US9893961B2 (en) | 2006-05-24 | 2018-02-13 | Microsoft Technology Licensing, Llc | Applications and services as a bundle |
US8811396B2 (en) | 2006-05-24 | 2014-08-19 | Maxsp Corporation | System for and method of securing a network utilizing credentials |
US9584480B2 (en) | 2006-05-24 | 2017-02-28 | Microsoft Technology Licensing, Llc | System for and method of securing a network utilizing credentials |
US9906418B2 (en) | 2006-05-24 | 2018-02-27 | Microsoft Technology Licensing, Llc | Applications and services as a bundle |
US10511495B2 (en) | 2006-05-24 | 2019-12-17 | Microsoft Technology Licensing, Llc | Applications and services as a bundle |
US9160735B2 (en) | 2006-05-24 | 2015-10-13 | Microsoft Technology Licensing, Llc | System for and method of securing a network utilizing credentials |
US8898319B2 (en) | 2006-05-24 | 2014-11-25 | Maxsp Corporation | Applications and services as a bundle |
US8667273B1 (en) | 2006-05-30 | 2014-03-04 | Leif Olov Billstrom | Intelligent file encryption and secure backup system |
US8099605B1 (en) * | 2006-06-05 | 2012-01-17 | InventSec AB | Intelligent storage device for backup system |
US8099378B2 (en) | 2006-09-22 | 2012-01-17 | Maxsp Corporation | Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection |
US9317506B2 (en) | 2006-09-22 | 2016-04-19 | Microsoft Technology Licensing, Llc | Accelerated data transfer using common prior data segments |
US7840514B2 (en) | 2006-09-22 | 2010-11-23 | Maxsp Corporation | Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection |
US8423821B1 (en) | 2006-12-21 | 2013-04-16 | Maxsp Corporation | Virtual recovery server |
US8745171B1 (en) | 2006-12-21 | 2014-06-03 | Maxsp Corporation | Warm standby appliance |
US7844686B1 (en) | 2006-12-21 | 2010-11-30 | Maxsp Corporation | Warm standby appliance |
US9645900B2 (en) | 2006-12-21 | 2017-05-09 | Microsoft Technology Licensing, Llc | Warm standby appliance |
US8422833B2 (en) | 2007-10-26 | 2013-04-16 | Maxsp Corporation | Method of and system for enhanced data storage |
US9448858B2 (en) | 2007-10-26 | 2016-09-20 | Microsoft Technology Licensing, Llc | Environment manager |
US8645515B2 (en) | 2007-10-26 | 2014-02-04 | Maxsp Corporation | Environment manager |
US8307239B1 (en) | 2007-10-26 | 2012-11-06 | Maxsp Corporation | Disaster recovery appliance |
US8175418B1 (en) | 2007-10-26 | 2012-05-08 | Maxsp Corporation | Method of and system for enhanced data storage |
US9092374B2 (en) | 2007-10-26 | 2015-07-28 | Maxsp Corporation | Method of and system for enhanced data storage |
US10148433B1 (en) | 2009-10-14 | 2018-12-04 | Digitalpersona, Inc. | Private key/public key resource protection scheme |
US8495017B2 (en) * | 2011-08-03 | 2013-07-23 | Amadeus S.A.S. | Method and system to maintain strong consistency of distributed replicated contents in a client/server system |
US20130036092A1 (en) * | 2011-08-03 | 2013-02-07 | Amadeus S.A.S. | Method and System to Maintain Strong Consistency of Distributed Replicated Contents in a Client/Server System |
US20130185260A1 (en) * | 2012-01-17 | 2013-07-18 | Nathan Daniel Weinstein | Data backup and restoral apparatus, system, and methods |
US11340894B2 (en) * | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US11328096B2 (en) | 2019-04-30 | 2022-05-10 | JFrog, Ltd. | Data bundle generation and deployment |
US11386233B2 (en) | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
US20220244951A1 (en) * | 2019-04-30 | 2022-08-04 | JFrog Ltd. | Data file partition and replication |
US11726777B2 (en) * | 2019-04-30 | 2023-08-15 | JFrog, Ltd. | Data file partition and replication |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
US11921902B2 (en) | 2019-04-30 | 2024-03-05 | JFrog Ltd. | Data bundle generation and deployment |
US11502851B2 (en) | 2019-07-19 | 2022-11-15 | JFrog Ltd. | Software release verification |
US11533331B2 (en) | 2019-07-19 | 2022-12-20 | JFrog Ltd. | Software release tracking and logging |
US11909890B2 (en) | 2019-07-19 | 2024-02-20 | JFrog Ltd. | Software release verification |
US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
Also Published As
Publication number | Publication date |
---|---|
US7401192B2 (en) | 2008-07-15 |
US20060075004A1 (en) | 2006-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7401192B2 (en) | Method of replicating a file using a base, delta, and reference file | |
US6718352B1 (en) | Methods and apparatus for managing a data set stored on a data storage device | |
US8024298B2 (en) | Backing-up and restoring files including files referenced with multiple file names | |
US7483927B2 (en) | Method for merging metadata on files in a backup storage | |
US7904748B2 (en) | Remote disaster recovery and data migration using virtual appliance migration | |
US7509466B2 (en) | Backup method for a copy pair using newly created logical volume via virtual server device | |
US7673173B2 (en) | System and program for transmitting input/output requests from a first controller to a second controller | |
US8280851B2 (en) | Applying a policy criteria to files in a backup image | |
US9606881B1 (en) | Method and system for rapid failback of a computer system in a disaster recovery environment | |
CN101243446B (en) | Online page restore from a database mirror | |
US8010514B2 (en) | System and method for a distributed object store | |
US7870353B2 (en) | Copying storage units and related metadata to storage | |
US6938136B2 (en) | Method, system, and program for performing an input/output operation with respect to a logical storage device | |
US7483926B2 (en) | Production server to data protection server mapping | |
US20030065780A1 (en) | Data storage system having data restore by swapping logical units | |
US20040260736A1 (en) | Method, system, and program for mirroring data at storage locations | |
US20080294859A1 (en) | Performing backup operations for a volume group of volumes | |
US7506116B2 (en) | Maintaining and using information on updates to a data group after a logical copy is made of the data group | |
CA2532764A1 (en) | System and method of relational database configuration mirroring | |
US7185157B2 (en) | Method, system, and article of manufacture for generating a copy of a first and a second set of volumes in a third set of volumes | |
US7359975B2 (en) | Method, system, and program for performing a data transfer operation with respect to source and target storage devices in a network | |
US9342524B1 (en) | Method and apparatus for single instance indexing of backups | |
US11436089B2 (en) | Identifying database backup copy chaining | |
US8255675B1 (en) | System and method for storage management of file system configuration data | |
US9497266B2 (en) | Disk mirroring for personal storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |