US6158019A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map
Assignee: Carbonite LLC
•
Filing: 1997-11-14
•
Granted: 2000-12-05
•
Expires: 2017-11-14
Abstract
Abstract A method and apparatus for restoring an updated computer storage from a journal of write events and a copy of an original storage generates an event map from the journal of write events. The event map permits efficient combination of the contents of the write event journal and the original storage. The event map also enables translation of the event journal into a delta expressing the differences between the original and updated storages. The event map similarly permits efficient merging of a write event journal and an original file stored streaming tape.
Inventors
- 👤 Mark D. Squibb
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-07 10:43
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1446; G06F11/1458; G06F11/1469; G06F11/1471; G06F2201/00; G06F2201/86
Claims Analysis
Total Claims: 54
Claim 1
Independent Claim
78 words
A method for creating an event map from an event journal, comprising the steps of: reading each of a plurality of write event entries from an event journal; generating a current event marker for each of the plurality of write event entries; and determining if an overlap condition exists between a latest current event marker and an existing current event marker and if an overlap condition exists, removing the overlap condition to represent the latest current event marker.
Claim 2
Independent Claim
78 words
A method for creating an event map from an event journal, comprising the steps of: reading each of a plurality of write event entries from an event journal; generating a current event marker for each of the plurality of write event entries; and determining if an overlap condition exists between a latest current event marker and an existing current event marker and if an overlap condition exists, removing the overlap condition to represent the latest current event marker.
Claim 3
Dependent Claim
34 words
The method according to claim 1, wherein the step of determining and removing the overlap condition includes comparing the latest current event marker and the existing current event marker to identify an overlapped portion.
Claim 4
Dependent Claim
37 words
The method according to claim 1, wherein the event journal includes the plurality of write events stored in a computer memory device, the computer memory device having an array of storage units each having a predetermined address.
Claim 5
Dependent Claim
55 words
The method according to claim 3, wherein each of the plurality of write events includes at least an event address and an event data, the event address representing a location of the write event in the computer memory device and the event data including a content of the storage units occupied by the write event.
Claim 6
Dependent Claim
67 words
The method according to claim 1, wherein the current event marker includes at least a marker origin address, a marker event span and a marker data pointer, the marker origin address representing a location in the computer memory device, the marker event span representing a number of occupied storage units, and the marker data pointer representing a pointer to an event data in the computer memory device.
Claim 7
Dependent Claim
24 words
The method according to claim 1, further comprising the step of storing each of the plurality of current event markers in a sorted list.
Claim 8
Dependent Claim
26 words
The method according to claim 2, wherein the step of removing the overlap condition includes one of deleting the overlapped portion and revising the overlapped portion.
Claim 9
Dependent Claim
30 words
The method according to claim 3, wherein the array of storage units stores one of bytes in a computer file, blocks in a computer disk and records in a database.
Claim 10
Dependent Claim
68 words
The method according to claim 1, wherein the event journal is stored on a backup computer system, the backup computer system being coupled to a primary computer system, and further comprising the step of storing each current event marker on the backup computer system, and wherein the steps of generating the current event marker and determining and removing the overlap condition are performed on the backup computer system.
Claim 11
Dependent Claim
38 words
The method according to claim 1, wherein the steps of generating the current event marker and determining if an overlap condition exists are performed immediately after the step of reading each of the plurality of write event entries.
Claim 12
Dependent Claim
84 words
The method according to claim 4, further comprising the step of, when a write event entry occurs only at a block boundary and an event size equals a block size, storing each current event marker in an array of storage marker pointers containing one of a null value and the marker data pointer, the null value indicating an original storage block not changed by a write event entry and the marker data pointer indicating the original data block changed by the write event entry.
Claim 13
Dependent Claim
51 words
The method according to claim 1, further comprising the step of dividing the event journal into a plurality of segments and wherein the step of reading each of the plurality of write events includes reading each of the plurality of write events for a respective one of the plurality of segments.
Claim 14
Independent Claim
83 words
A method of fulfilling a read request for an updated storage using an original storage, an event journal and an event map, the method comprising the steps of: receiving a read request, the read request including a data position and a read size; identifying, from the read request and via the event map, portions of the read request to be provided by the event journal and portions of the read request to be provided by the original storage; and fulfilling the read request.
Claim 15
Independent Claim
83 words
A method of fulfilling a read request for an updated storage using an original storage, an event journal and an event map, the method comprising the steps of: receiving a read request, the read request including a data position and a read size; identifying, from the read request and via the event map, portions of the read request to be provided by the event journal and portions of the read request to be provided by the original storage; and fulfilling the read request.
Claim 16
Dependent Claim
61 words
The method according to claim 13, wherein the data position represents an offset from an origin of the updated storage and the read size represents a number of storage units to be read from the updated storage, the updated storage containing a data content of the original storage and subsequent changes to the original storage via a plurality of write events.
Claim 17
Dependent Claim
46 words
The method according to claim 13, wherein the original storage includes a computer memory device having an array of storage units each having a predetermined address, the event journal being stored in the computer memory device, the event journal including a plurality of write event entries.
Claim 18
Dependent Claim
56 words
The method according to claim 15, wherein each of the plurality of write event entries includes at least an event address and an event data, the event address representing a location of the write event in the computer memory device and the event data including a content of the storage units occupied by the write event.
Claim 19
Dependent Claim
80 words
The method according to claim 16, wherein the event map is created from the event journal via: reading each of the plurality of write event entries from the event journal; generating a current event marker for each of the plurality of write event entries; and determining if an overlap condition exists between a latest current event marker and an existing current event marker and if an overlap condition exists, removing the overlap condition to represent the latest current event marker.
Claim 20
Dependent Claim
67 words
The method according to claim 17, wherein the current event marker includes at least a marker origin address, a marker event span and a marker data pointer, the marker origin address representing a location in the computer memory device, the marker event span representing a number of occupied storage units, and the marker data pointer representing a pointer to an event data in the computer memory device.
Claim 21
Dependent Claim
12 words
The method according to claim 13, wherein the original storage is empty.
Claim 22
Dependent Claim
16 words
The method according to claim 13, wherein the original storage includes a read only storage device.
Claim 23
Dependent Claim
37 words
The method according to claim 13, wherein the step of fulfilling the read request includes reading the requested data from a respective one of the original storage and the event map as determined via the identifying step.
Claim 24
Dependent Claim
37 words
The method according to claim 21, wherein the step of fulfilling the read request further includes reading each contiguous segment of the original storage and recording a result of the read request on a second storage media.
Claim 25
Dependent Claim
22 words
The method according to claim 22, wherein the second storage media includes one of a streaming backup tape and a seekable disk.
Claim 26
Dependent Claim
40 words
The method according to claim 13, wherein the original storage resides on a streaming tape and the streaming tape is not repositioned during the step of fulfilling the read request except to skip overlaid data segments from the event journal.
Claim 27
Dependent Claim
16 words
The method according to claim 22, wherein the event journal includes a plurality of event journals.
Claim 28
Independent Claim
71 words
A method for converting an event journal into a delta, comprising the steps of: generating an event map from an event journal; identifying, via the event map, a mismatching segment between an original storage and an updated storage; recording a mismatch marker for each mismatching segment; identifying, via the event map, a matching segment between the original storage and the updated storage; and recording a match marker for each matching segment.
Claim 29
Independent Claim
71 words
A method for converting an event journal into a delta, comprising the steps of: generating an event map from an event journal; identifying, via the event map, a mismatching segment between an original storage and an updated storage; recording a mismatch marker for each mismatching segment; identifying, via the event map, a matching segment between the original storage and the updated storage; and recording a match marker for each matching segment.
Claim 30
Dependent Claim
53 words
The method according to claim 26, wherein each match marker represents a position and a size of a matching segment in the original storage and the updated storage and each mismatch marker represents a position, a size and a data content of a mismatching segment between the original storage and the updated storage.
Claim 31
Dependent Claim
43 words
The method according to claim 26, wherein the step of identifying a mismatching segment includes identifying the mismatching segment as a function of an entry in the event map using a marker data pointer to supply a data content from the event journal.
Claim 32
Dependent Claim
43 words
The method according to claim 26, wherein the step of identifying a matching segment includes identifying an omission from the event map and wherein the step of recording a match marker includes recording the match marker for each omission in the event map.
Claim 33
Dependent Claim
47 words
The method according to claim 26, wherein the updated storage is stored on a first storage device and wherein a copy of the original storage and the recorded markers are stored on a second storage device, the second storage device providing a backup of the updated storage.
Claim 34
Dependent Claim
29 words
The method according to claim 26, wherein the mismatch marker represents a size and a data content of a mismatching segment between the original storage and the updated storage.
Claim 35
Dependent Claim
32 words
The method according to claim 26, wherein the mismatch marker represents a position, a size and a marker data pointer of a mismatching segment between the original storage and the updated storage.
Claim 36
Dependent Claim
30 words
The method according to claim 30, wherein the first storage device is located on a first computer system and the second storage device is located on a second computer system.
Claim 37
Dependent Claim
34 words
The method according to claim 26, wherein the event journal includes a plurality of event journals, and wherein the generating, identifying and recording steps are performed for each of the plurality of event journals.
Claim 38
Dependent Claim
25 words
The method according to claim 26, wherein the event journal is recorded on a client server and the markers are recorded on a backup server.
Claim 39
Dependent Claim
38 words
The method according to claim 26, further comprising the step of dividing the event journal into a plurality of segments and wherein the steps of generating, identifying and recording are performed for each of the plurality of segments.
Claim 40
Dependent Claim
30 words
The method according to claim 1, wherein the event journal includes synchronization information and further comprising the step of identifying a termination condition as a function of the synchronization information.
Claim 41
Dependent Claim
34 words
The method according to claim 1, wherein the event journal includes a plurality of event journals and the steps of reading, generating and determining are performed for each of the plurality of event journals.
Claim 42
Dependent Claim
19 words
The method according to claim 1, wherein the event journal includes synchronization information comprising a plurality of checkpoint events.
Claim 43
Dependent Claim
32 words
The method according to claim 39, wherein each of the plurality of write event entries is associated with one of the plurality of checkpoint events by its offset in the event journal.
Claim 44
Dependent Claim
31 words
The method according to claim 39, wherein each of the plurality of write event entries is explicitly associated with one of the plurality of checkpoint events by a checkpoint event binding.
Claim 45
Dependent Claim
20 words
The method according to claim 39, further including generating an event map for each of the plurality of checkpoint events.
Claim 46
Dependent Claim
35 words
The method according to claim 42, the event map comprises one or more write event markers generated from the plurality of write event entries bound to at least one of the plurality of checkpoint events.
Claim 47
Dependent Claim
27 words
The method according to claim 41, further comprising generating an event map for write event entries referenced by at least one of the plurality of checkpoint events.
Claim 48
Dependent Claim
17 words
The method according to claim 3, wherein the computer memory device includes a journal computer memory device.
Claim 49
Dependent Claim
17 words
The method according to claim 4, wherein the computer memory device includes a primary computer memory device.
Claim 50
Dependent Claim
31 words
The method according to claim 46, wherein the write event address is a multiple of a block size, and wherein the write event data is a multiple of a block size.
Claim 51
Dependent Claim
25 words
The method according to claim 47, further comprising mapping a pointer in a mapped pointer array to an element of the primary computer memory device.
Claim 52
Dependent Claim
15 words
The method according to claim 48, wherein the pointer is initialized to a null value.
Claim 53
Dependent Claim
32 words
The method according to claim 47, wherein the step of determining and removing an overlap condition includes dividing the event address by the block size and accessing corresponding mapped pointer array member.
Claim 54
Dependent Claim
18 words
The method according to claim 50, further comprising installing the event address in the mapped pointer array member.
References Cited (Backward Citations)
US5086502A
Cited
US5479654A
Cited
US5212784A
Cited
US5325519A
Cited
US5375234A
Cited
US5640561A
Cited
US5404508A
Cited
US5426774A
Cited
US5675725A
Cited
US5535381A
Cited
US5617566A
Cited
US5713024A
Cited
US5638509A
Cited
US5435004A
Cited
US5649152A
Cited
US5596710A
Cited
US5574882A
Cited
US5604862A
Cited
US5692121A
Cited
US5720026A
Cited
US5774643A
Cited
US5737514A
Cited
US5765173A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-12-05 | 2004-06-05 | 2004-12-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-12-05 | 2008-06-05 | 2008-12-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-12-05 | 2012-06-05 | 2012-12-05 | $7700.00 | Window Closed / Lapsed |