IP Library Granted Patent US 9,563,640
Granted Patent B2
US 9,563,640 · App. 11/973,114 · Granted Feb 7, 2017

Techniques for versioning files

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,563,640
App. No.
11/973,114
Granted
Feb 7, 2017
Kind
B2
Abstract

Techniques are presented for versioning files. Base files are acquired for files on a primary volume. At configurable points in time changes to the files are noted on different volumes, these changes are represented as deltas. The deltas are stored on an archive volume and represent versions and a version history for the files.

Claims (30)

1. A method, comprising:

obtaining a base file at a first time, the base file is a complete copy of a data obtained as a checkpoint in time for the data and the base file is used for deriving subsequent versions of the data, wherein obtaining further includes dynamically acquiring the base file from a snapshot volume, wherein the base file is recorded within the snapshot volume during a snapshot operation taken at the first time of a primary volume, wherein the snapshot is of the primary volume and includes the data;

capturing changes made to the base file at a second time as a delta, the delta reflects differences between the base file and the changes, the delta represented as information and instructions in a serialized format, the delta is a progression from a previous state of the base file to a newer version of the base file and the delta includes strings of data to insert or delete from the base file along with insertion or deletion commands to insert the strings or to delete the strings, and wherein the delta stores with each delete command a corresponding string of the data that was deleted without having to use an index for locating the data that was deleted;

storing, the delta as the newer version of the base file in an archive storage, wherein the archive storage does not include a copy of the base file, and the base file is dynamically acquired when needed from the snapshot volume, and the base file is at least represented at any given point in time as three versions: a base file version stored as the complete copy of the data in the snapshot volume, a subsequent version derived from the base file version and stored as a subsequent delta in the archive storage, and a current version derived from the subsequent version and the base file version and the current version stored as a current delta in the archive storage, any particular version of the base file obtained by serially applying retained deltas as a progression to reach that particular version; and

processing, by the archive storage, a particular delta for generating a particular new version of the base file without indexing, storing, retrieving, and processing from the archive storage entire copies of any specific files derived from the base file.

2. The method of claim 1 further comprising:

capturing additional changes made to the newer version at a third time as an additional delta; and

storing the additional delta as a representation of the newer version in the archive or storage.

3. The method of claim 2 further comprising, iterating the processing for yet more changes at more times to capture more deltas, where each delta represents a different version of the base file and storing each delta in the archive storage.

4. The method of claim 3 further comprising:

ensuring that a total number of deltas does not exceed a threshold; and

updating the base file to include application of a select number of the deltas when the total number of deltas exceeds the threshold, wherein the select number of the deltas is equal to an excess above the threshold.

5. The method of claim 1 , wherein capturing further includes receiving the second time as a configuration parameter or as an instruction from an administrator.

6. The method of claim 1 further comprising:

receive a request to restore the newer version of the base file;

acquiring the delta from the archive storage; and

delivering the delta and the base file to deliver to a client associated with the request to reproduce the newer version at the client.

7. A method, comprising:

using a snapshot volume of a primary volume for dynamically obtaining base files for files residing on the primary volume from that snapshot volume, and wherein each base file is recorded within the snapshot volume during a snapshot operation taken at the first time of a primary volume that includes the files;

recoding changes, which are noted on the primary volume, and which are made to the files at configurable periods, the changes are represented as deltas that are defined as signatures; and

storing the deltas as versions of the base files in an archive volume and just the deltas are stored and not whole files and not the base files, each delta applied serially forward against a particular base file to arrive at a particular subsequent version for that particular base file and each delta applied in a reverse fashion from that particular base file to arrive at a particular earlier version of that particular base file, multiple deltas are serially applied in a forward progression against one another beginning with a first delta to arrive at a particular version for the particular base file that is subsequent to when that particular base file was obtained and the multiple deltas applied in a reversion progression against one another beginning with a last delta to arrive at any given version that precedes a current version, the archive volume also includes specific deltas and a file version history for the base file but does not include entire copies of specific files derived from a specific base file, and the archive volume does not index, store, retrieve, and process entire files from the archive volume for any particular new version but instead processes the particular delta to generate the particular new version using a particular dynamically acquired base file from the snapshot volume and the dynamically acquired base file dynamically acquired when needed from the snapshot volume, and wherein each delta file stores with any delete command instruction a corresponding string that was deleted by the delete command without having to use an index for locating the corresponding string.

8. The method of claim 7 , wherein receiving further includes:

receiving a request to restore a particular version for a particular file;

retrieving a particular base file associated with the particular file and one or more of the deltas that reflect the particular version being requested; and

applying the one or more deltas to the particular base file to create the particular version that satisfies the request.

9. The method of claim 7 , wherein recording changes further includes using a base signatures for the base files and revised signatures to reflect the changes to the base files.

10. The method of claim 7 , wherein recoding changes further includes updating a particular base file when a total number of deltas for that particular base file exceeds a threshold number.

11. The method of claim 7 , wherein recording changes further includes recording the changes at configurable intervals defined by an administrator.

12. The method of claim 7 further comprising, associating policy with each unique base file, wherein the policy at least defines a maximum number of deltas for a particular base file to which it relates.

13. The method of claim 12 further comprising, enforcing and managing the policy in the archive volume and when particular versions of particular files are requested.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2008
From: SUDHAKAR, GOSUKONDA NAGA VENKATA SATYA; BHATTACHARJEE, ANIRBAN
To: NOVELL, INC.
Reel/Frame 020427/0414 →