← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag