IP Library Granted Patent US 7,577,807
Granted Patent B2
US 7,577,807 · App. 10/924,652 · Granted Aug 18, 2009

Methods and devices for restoring a portion of a data store

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 7,577,807
App. No.
10/924,652
Granted
Aug 18, 2009
Kind
B2
Abstract

A storage management device receives a request to restore a portion of a data store to its content at a specified past time, which is selected from a substantially continuous time interval. In response to the received request, the storage management device stores in the portion of the data store content that was stored in the portion of the data store at the specified past time and that was overwritten since the specified past time.

Claims (38)

1. A method for restoring a first portion of a plurality of units of storage, the method comprising:

recording in a time store information associated with all write commands directed to the plurality of units of storage, the recorded information including old data copied from a current store representing a current state of the plurality of units of storage and associated timestamps, wherein old data overwritten in response to each of the write commands is timestamped in the time store, thereby continuously indexing by timestamp old data to be overwritten with new data in the plurality of units of storage by write command prior to execution of each write command, the time store and the current store being separate from the plurality of units of storage and from each other, wherein the at least one time store does not store the new data;

receiving a request to restore the first portion of the plurality of units of storage at a specified past time;

storing, in the first portion of the plurality of units of storage, the old data that was stored in the first portion of the plurality of units of storage at the specified past time and that was overwritten since the specified past time, wherein the first portion of the plurality of units of storage is restored based at least in part on the recorded information and the current store, without the use of a snapshot that includes the old data at the specified past time.

2. The method of claim 1 , wherein the storing step comprises:

identifying units of storage within the first portion of the plurality of units of storage that had old data stored in those units of storage at the specified past time and that had that old data overwritten since the specified past time; and

writing to the identified units of storage the old data that was stored in those identified units of storage at the specified past time.

3. The method of claim 2 , wherein the identifying step comprises determining whether units of storage located within the first portion of the plurality of units of storage were overwritten in an interval between the specified past time and a present time.

4. The method of claim 3 , wherein the identifying step further comprises, for each determined unit of storage that was overwritten in the interval between the specified past time and the present time, locating a backed-up copy of the old data that was overwritten.

5. The method of claim 4 , wherein the backed-up copy is located by locating overwritten old data associated with a first write command following the specified past time directed to such unit of storage.

6. The method of claim 5 , wherein the backed-up copy was made during a copy-on-write operation.

7. The method of claim 5 , wherein the backed-up copy was recorded in the time store.

8. The method of claim 5 , wherein the backed-up copy was stored in a collection of changes to the plurality of units of storage.

9. The method of claim 8 , wherein the collection is a database.

10. The method of claim 2 , wherein the writing step comprises performing for at least one of the identified units of storage a copy-on-write operation.

11. The method of claim 2 , wherein the writing step comprises copying old data currently stored in each identified unit of storage before such old data is overwritten.

12. The method of claim 11 , wherein copying the old data comprises storing the old data at a location different than the first portion of the plurality of units of storage.

13. The method of claim 1 , wherein the first portion of the plurality of units of storage comprises contiguous units of storage.

14. The method of claim 1 , wherein the first portion of the plurality of units of storage comprises non-contiguous units of storage.

15. The method of claim 1 , wherein the first portion of the plurality of units of storage comprises a portion of the plurality of units of storage storing data for an application.

16. The method of claim 1 , wherein the request is included in a request to restore all or portions of each of a plurality of plurality of units of storage.

17. The method of claim 1 , further comprising servicing an I/O request directed to the first portion of the plurality of units of storage while storing in the first portion of the plurality of units of storage old data that was stored in the first portion of the plurality of units of storage at the specified past time and that was overwritten since the specified past time.

18. A method for restoring a first portion of a plurality of units of storage, the method comprising:

recording in a time store information associated with all write commands directed to the plurality of units of storage, the recorded information including old data copied from a current store representing a current state of the plurality of units of storage and associated timestamps, wherein old data overwritten in response to each of the write commands is timestamped in the time store, thereby continuously indexing by timestamp old data to be overwritten with new data in the plurality of units of storage by write command prior to execution of each write command, the time store and the current store being separate from the plurality of units of storage and from each other, wherein the time store does not store the new data;

receiving a request to restore the first portion of the plurality of units of storage at a specified past time, the request identifying less than the entire plurality of units of storage; and

in response to the request, for each unit of storage in the first portion:

determining whether such unit of storage was overwritten in an interval between the specified past time and a present time; and

in response to the determining step, for each unit of storage determined to have been overwritten in the interval between the specified past time and the present time:

locating a copy of the overwritten old data;

storing in the determined unit of storage the located previously overwritten old data; and

recording the occurrence of the storing step and an associated location of the unit of storage in the time store, without the use of a snapshot that includes the old data at the specified past time.

19. A device for restoring a portion of a plurality of units of storage, the device comprising:

a receiver configured to receive a request to restore the portion of a plurality of units of storage at a specified past time; and

a storing module having access to a time store having records of information associated with all write commands directed to the plurality of units of storage and backed-up copies of old data overwritten in response to each of the write commands, the storing module being configured to store in the portion of the plurality of units of storage the old data that was stored in the portion of the plurality of units of storage at the specified past time and that was overwritten since the specified past time, and wherein the portion of the plurality of units of storage is restored without the use of a snapshot containing the old data at the specified past time based at least in part on the records of information and a current store representing a current state of the plurality of units of storage, the time store and the current store being separate from the plurality of units of storage and from each other, wherein the time store does not store the new data.

20. A method for backing up old data of a plurality of units of storage, the method comprising:

recording in a time store, automatically, information associated with all write commands directed to the plurality of units of storage, wherein each write command comprises an instruction to overwrite old data in at least one unit of storage with new data, the recorded information including the old data copied from a current store representing a current state of the plurality of units of storage and associated timestamps, wherein the time store does not store the new data; and

copying, prior to overwriting the at least one unit of storage, the old data present at the at least one unit of storage into the time store, wherein the old data is timestamped, thereby continuously indexing by timestamp the old data to be overwritten by write command prior to execution of each write command, the time store and the current store being separate from the plurality of units of storage and from each other; and

identifying the old data overwritten in the at least one unit of storage based at least in part upon an associated timestamp without the use of a snapshot that includes the old data at the specified past time.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2007
From: REVIVIO, INC.
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019032/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2004
From: ROWAN, MICHAEL; RODGERS, KEVIN
To: REVIVIO, INC.
Reel/Frame 015936/0678 →