IP Library Granted Patent US 7,904,428
Granted Patent B2
US 7,904,428 · App. 10/924,668 · Granted Mar 8, 2011

Methods and apparatus for recording write requests directed to 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,904,428
App. No.
10/924,668
Granted
Mar 8, 2011
Kind
B2
Abstract

A storage management device records write requests that are directed to a data store. In one embodiment, the storage management device records a plurality of write request entries, each one of which includes information relating to a write request, in at least one first database table, and maintains, for each first database table, at least one record in a second database table. The one or more records in the second database table include data representing the effects of the write requests on a state of at least one portion of the data store. In one such embodiment, each time that one write request entry is recorded in one first database table, the storage management device updates at least one record in the second database table.

Claims (39)

1. A method for recording write requests directed to a data store, the method comprising:

recording in at least one first database table a plurality of write request entries associated with each of a corresponding plurality of write requests directed to a data store, each write request entry comprising information relating to a corresponding one of the plurality of write requests, each write request entry reflecting a change to the data store, each write request entry being used to generate at least one of a plurality of prior historical views without use of a snapshot of the data store, and each historical view being associated with a recovery time that comprises a past point in time for which data is requested;

maintaining, for each of the write request entries in the at least one first database table, at least one associated record in a second database table, each associated record comprising data representing an effect of an associated write request on a state of at least one portion of the data store, each of the associated records in the second database table reflecting historical information about the data store; and

updating, each time that one of the plurality of write request entries is recorded in the at least one first database table, at least one record in the second database table.

2. The method of claim 1 , wherein each at least one record comprises a plurality of bit entries, each bit entry being set or unset.

3. The method of claim 2 , wherein each bit entry corresponds to at least one unit of storage located within the at least one portion of the data store.

4. The method of claim 3 , wherein each bit entry that is set indicates that the at least one unit of storage located within the at least one portion of the data store to which that bit entry corresponds has been overwritten at least once.

5. The method of claim 3 , wherein each bit entry that is unset indicates that the at least one unit of storage located within the at least one portion of the data store to which that bit entry corresponds has not been overwritten at least once.

6. The method of claim 2 , wherein updating at least one record in the second database table comprises setting each bit entry in the at least one record that is unset and that corresponds to a unit of storage located within the at least one portion of the data store that is overwritten.

7. The method of claim 2 , wherein each at least one record comprises at least one byte of bit entries.

8. The method of claim 2 , wherein each at least one record comprises at least one word of bit entries.

9. The method of claim 1 , wherein the data of each at least one record comprises a binary representation.

10. The method of claim 1 , wherein the data of each at least one record comprises a hexadecimal representation.

11. The method of claim 1 , wherein each at least one record further comprises an identifier for identifying a first database table with which that record is associated.

12. The method of claim 1 , wherein the data representing the effects of the write requests on the state of the at least one portion of the data store identifies at least one unit of storage located within the at least one portion of the data store that was overwritten by the write requests.

13. The method of claim 1 further comprising identifying at least one first database table to search by interpreting the at least one record in the second database table.

14. The method of claim 13 , wherein each of the at least one records in the second database table comprises a plurality of bit entries, each bit entry corresponding to at least one unit of storage located within the at least one portion of the data store and each bit entry being set or unset, and wherein identifying at least one first database table to search comprises, for each of the at least one units of storage located within the at least one portion of the data store that has at least one corresponding bit entry, determining whether at least one of the at least one record has a bit entry for that at least one unit of storage that is set.

15. The method of claim 14 , wherein, upon determining, for a particular at least one unit of storage located within the at least one portion of the data store, that at least one record has a bit entry for that particular at least one unit of storage that is set, identifying at least one first database table to search further comprises identifying the one or more records that have a bit entry that is set for that particular at least one unit of storage.

16. The method of claim 15 , wherein, upon identifying the one or more records that have a bit entry that is set for the particular at least one unit of storage, identifying at least one first database table to search further comprises identifying the at least one first database tables for which those identified records are maintained.

17. The method of claim 14 , wherein determining, for a particular at least one unit of storage located within the at least one portion of the data store, whether at least one record has a bit entry for that particular at least one unit of storage that is set comprises performing the Boolean OR operation on the bit entries that correspond to that particular at least one unit of storage.

18. The method of claim 14 , wherein determining, for a particular at least one unit of storage located within the at least one portion of the data store, whether at least one record has a bit entry for that particular at least one unit of storage that is set comprises performing the Boolean AND operation on the bit entries that correspond to that particular at least one unit of storage.

19. The method of claim 13 further comprising searching the at least one identified first database table.

20. The method of claim 19 further comprising generating at least a portion of a time map of the at least one portion of the data store for a past time.

21. The method of claim 20 , wherein each record in the second database table comprises a plurality of bit entries, each bit entry corresponding to at least one unit of storage located within the at least one portion of the data store and each bit entry being set or unset, and wherein searching the at least one identified first database table comprises, for each at least one unit of storage located within the at least one portion of the data store that has a corresponding bit entry that is set, determining a first time following the past time at which previous data stored at that at least one unit of storage was copied to a new location and overwritten at that at least one unit of storage.

22. The method of claim 21 , wherein searching the at least one identified first database table further comprises determining the new location to which the previous data was copied.

23. The method of claim 22 , wherein generating at least a portion of a time map of at least one portion of the data store for the past time comprises using the new location.

24. The method of claim 19 further comprising responding to a read request for data stored in at least one specified unit of storage located within the at least one portion of the data store at a past time.

25. The method of claim 24 , wherein each record in the second database table comprises a plurality of bit entries, each bit entry corresponding to at least one unit of storage located within the at least one portion of the data store and each bit entry being set or unset, and wherein searching the at least one identified first database table comprises, for each at least one unit of storage specified in the read request that has a corresponding bit entry that is set, determining a first time following the past time at which previous data stored at that specified unit of storage was copied to a new location and overwritten at that specified unit of storage.

26. The method of claim 25 , wherein searching the at least one identified first database table further comprises determining the new location to which the previous data was copied.

27. The method of claim 26 , wherein responding to the read request comprises reading the previous data from the new location.

28. The method of claim 27 , wherein responding to the read request further comprises transmitting the previous data.

29. The method of claim 1 , wherein the information of each write request entry comprises an identification of at least one unit of storage located within the data store to which the write request was directed.

30. The method of claim 1 , wherein each write request results in previous data, previously stored in at least one unit of storage located within the data store, being copied to a new location and being overwritten at the at least one unit of storage located within the data store.

31. The method of claim 30 , wherein the information of each write request entry comprises the new location to which the previous data is copied.

32. The method of claim 1 , wherein the information of each write request entry comprises a time at which the write request was received.

33. A device for recording write requests directed to a data store, the device comprising:

at least one first database table for recording a plurality of write request entries associated with each of a corresponding plurality of write requests directed to a data store, each write request entry comprising information relating to a corresponding one of the plurality of write requests, each write request entry reflecting a change to the data store, each write request entry being used to generate at least one of a plurality of prior historical views without use of a snapshot of the data store, and each historical view being associated with a recovery time that comprises a past point in time for which data is requested;

a second database table comprising at least one associated record for each of the write request entries in the at least one first database table, each associated record comprising data representing the effects of associated write requests on a state of at least one portion of the data store, each of the associated records in the second database table reflecting historical information about the data store; and

an updating module for updating, each time that one of the plurality of write request entries is recorded in the at least one first database table, at least one record in the second database table.

Assignments (12)
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 →
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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF ADDRESS Recorded Dec 22, 2010
From: SYMANTEC CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 025549/0116 →
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 Dec 20, 2004
From: PERRY, ROBERT; PASSERINI, RON; ROWAN, MICHAEL
To: REVIVIO, INC.
Reel/Frame 016491/0564 →