IP Library Granted Patent US 7,584,337
Granted Patent B2
US 7,584,337 · App. 10/778,436 · Granted Sep 1, 2009

Method and system for obtaining data stored in 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,584,337
App. No.
10/778,436
Granted
Sep 1, 2009
Kind
B2
Abstract

A method, apparatus, and system for accessing units of storage that depends at least in part on an address of the unit of storage and the time that data was written to the unit of storage.

Claims (54)

1. A method of providing historical data for a plurality of units of storage, the method comprising:

backing up old data to be overwritten by write command with new data in the plurality of units of storage using a current store and a time store, the current store representing a current state of the plurality of units of storage, the time store storing old data copied from the current store and associated timestamps, the old data copied from the current store representing old data to be overwritten by write command in the plurality of units of storage, wherein old data to be overwritten by write command in the plurality of units of storage is continuously indexed by timestamp in the time store prior to execution of each write command, the current store and the time 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 for data stored in at least one of the plurality of units of storage at a specified time; and

identifying the requested data based at least in part on a timestamp in the time store, without the use of a snapshot that includes the requested data at the specified time.

2. The method of claim 1 , wherein the specified time is selected from any point in a continuous time period.

3. The method of claim 2 , wherein the continuous time period is an interval between a past time and a current time.

4. The method of claim 1 , wherein the identified data is located in one or more storage devices comprising the time store and the current store.

5. The method of claim 1 , wherein the identifying step further comprises determining whether the data stored in the at least one unit of storage was changed after the specified time.

6. The method of claim 5 , wherein the identifying step further comprises identifying the time store as the location if the data was changed after the specified time.

7. The method of claim 5 , wherein the identifying step further comprises identifying the current store as the location if the data was not changed after the specified time.

8. The method of claim 1 , wherein the identified data is located in one or more storage devices comprising the time store, the current store, a second time store, and a second current store.

9. The method of claim 1 , wherein the current store maintains a mirror copy of digital data in the plurality of units of storage.

10. The method of claim 1 , wherein, whenever a write command is directed to the plurality of units of storage during a continuous time period, the time store stores and timestamps old data previously stored in the plurality of units of storage that was subsequently overwritten in response to the write command.

11. The method of claim 1 , wherein at least one of the time store and the current store comprises at least one physical storage device.

12. The method of claim 11 wherein the at least one physical storage device comprises one or more storage devices selected from a group consisting of a hard disk, a random access memory (RAM), a cache memory, a tape drive, an optical medium, and a redundant array of independent disks (RAID).

13. The method of claim 1 , wherein at least one of the time store and the current store comprises at least one virtual storage device.

14. The method of claim 1 , wherein the request for data is received in a single packet.

15. The method of claim 14 , wherein the packet comprises at least a portion of an I/O command.

16. The method of claim 15 , wherein the I/O command is in a command format that conforms to one or more storage protocols.

17. The method of claim 16 , wherein the I/O command is a SCSI command.

18. The method of claim 1 , wherein the request for data is provided via a user interface.

19. The method of claim 1 , wherein the new data is stored at an address of the at least one unit of storage.

20. The method of claim 19 , wherein the address comprises a logical block address.

21. The method of claim 1 , wherein the request for data comprises a specifier for the time store.

22. The method of claim 21 , wherein the specifier comprises a logical unit number.

23. The method of claim 1 , wherein the request for data comprises an absolute time specification.

24. The method of claim 1 , wherein the request for data comprises a time specification that is relative to a known point in time.

25. The method of claim 1 , wherein the specified time is received in a packet.

26. The method of claim 25 , wherein the packet comprises at least a portion of an I/O command.

27. The method of claim 26 , wherein the I/O command is in a command format that conforms to one or more storage protocols.

28. The method of claim 27 , wherein the I/O command is a SCSI command.

29. A system for providing historical data for a plurality of units of storage, the system comprising:

a current store that represents a current state of the plurality of units of storage;

a time store that stores old data copied from the current store and associated timestamps by write command in the plurality of units of storage, wherein the old data overwritten by write command is continuously indexed by timestamp prior to execution of each write command, the old data copied from the current store representing old data to be overwritten, 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 new data;

a receiver that receives a request for data stored in at least one of the plurality of units of storage at a specified time; and

an identifier, in communication with the receiver, that identifies a location of the requested data based at least in part on a timestamp in the time store, without the use of a snapshot that includes the requested data at the specified time.

30. The system of claim 29 , further comprising a data reader for reading the requested data from the identified location.

31. The system of claim 29 , wherein the location is in one or more storage devices comprising the time store and the current store.

32. The system of claim 31 , wherein at least one of the time store and the current store comprises at least one physical storage device.

33. The system of claim 32 , wherein the at least one physical storage device comprises one or more storage devices selected from a group consisting of a hard disk, a random access memory (RAM), a cache memory, a tape drive, an optical medium, and a redundant array of independent disks (RAID).

34. The system of claim 29 , wherein the identifier determines whether the data stored in the at least one unit of storage was changed after the specified time.

35. The system of claim 34 , wherein the identifier identifies the time store as the location if the data was changed after the specified time.

36. The system of claim 34 , wherein the identifier identifies the current store as the location if the data was not changed after the specified time.

37. The system of claim 29 , wherein the location is in one or more storage devices comprising the time store, the current store, a second time store, and a second current store.

38. The system of claim 29 , wherein, whenever a write command is directed to the plurality of units of storage during a continuous time period, the time store stores and timestamps old data previously stored in the plurality of units of storage that was subsequently overwritten in response to the write command.

39. The system of claim 29 , wherein at least one of the time store and the current store comprises at least one virtual storage device.

40. The system of claim 29 , wherein the specified time is selected from any point in a continuous time period.

41. An article of manufacture for providing historical data from a plurality of units of storage, the article of manufacture comprising:

at least one processor readable storage medium; and

instructions carried on the at least one processor readable storage medium;

wherein the instructions are configured to be readable from the at least one processor readable storage medium by at least one processor and thereby cause the at least one processor to operate so as to:

back up old data to be overwritten with new data by write command in the plurality of units of storage using a current store and a time store, the current store representing a current state of the plurality of units of storage, the time store storing old data copied from the current store and associated timestamps, the old data copied from the current store representing old data to be overwritten by write command in the plurality of units of storage, wherein old data to be overwritten by write command in the plurality of units of storage is continuously indexed by timestamp in the time store prior to execution of each write command, the current store and the time 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;

request data stored in at least one of the plurality of units of storage at a specified time; and

identify the requested data based at least in part on the a timestamp in the time store, without the use of a snapshot that includes the requested data at the specified 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 Mar 29, 2004
From: ROWAN, MICHAEL T.; RODGERS, KEVIN F.
To: REVIVIO, INC.
Reel/Frame 015137/0523 →