CAPTURING SNAPSHOTS OF VARIABLE-LENGTH DATA SEQUENTIALLY STORED AND INDEXED TO FACILITATE REVERSE READING
First Claim
1. A method of capturing a snapshot of a repository of variable-length data records;
- wherein an index of the data records comprises;
for each of multiple keys, one or more values of the key and, for each value, a corresponding index offset to a first data record in the repository having the key value;
the method comprising;
identifying a final data record to be included in the snapshot;
determining a snapshot offset of the final data record in the repository;
creating a copy of the index; and
within the index copy, for each of the multiple keys;
for each value of the key;
determining whether the corresponding index offset is greater than the snapshot offset; and
if the corresponding index offset is greater than the snapshot offset, pruning the index offset until the corresponding index is less than or equal to the snapshot offset.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and apparatus are provided for capturing a snapshot of variable-length data records that are indexed and sequentially stored in a manner that facilitates reverse reading. Each data record has a fixed number of keys, a key offset for each key that leads to another record with the same key value, and size metadata identifying a size of the data record (and possibly the key offsets). An index identifies, for each known value of each key, an index offset to a first entry (e.g., the most recently stored entry) that has the key value. Capturing a snapshot includes identifying a final record within the snapshot (e.g., based on time), copying the index, and pruning it as necessary to omit records not consistent with the snapshot (e.g., to omit data records stored after a final time corresponding to the snapshot).
57 Citations
19 Claims
-
1. A method of capturing a snapshot of a repository of variable-length data records;
-
wherein an index of the data records comprises;
for each of multiple keys, one or more values of the key and, for each value, a corresponding index offset to a first data record in the repository having the key value;the method comprising; identifying a final data record to be included in the snapshot; determining a snapshot offset of the final data record in the repository; creating a copy of the index; and within the index copy, for each of the multiple keys; for each value of the key; determining whether the corresponding index offset is greater than the snapshot offset; and if the corresponding index offset is greater than the snapshot offset, pruning the index offset until the corresponding index is less than or equal to the snapshot offset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for capturing a snapshot of a repository of variable-length data records,
wherein an index of the data records comprises: - for each of multiple keys, one or more values of the key and, for each value, a corresponding index offset to a first data record in the repository having the key value;
the apparatus comprising; one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the apparatus to; identify a final data record to be included in the snapshot; determine a snapshot offset of the final data record in the repository; create a copy of the index; and within the index copy, for each of the multiple keys; for each value of the key; determine whether the corresponding index offset is greater than the snapshot offset; and if the corresponding index offset is greater than the snapshot offset, prune the index offset until the corresponding index is less than or equal to the snapshot offset. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
- for each of multiple keys, one or more values of the key and, for each value, a corresponding index offset to a first data record in the repository having the key value;
-
17. A system for capturing a snapshot of a repository of variable-length data records, comprising:
-
at least one processor; an index comprising, for each of multiple keys; one or more values of the key; and for each value, a corresponding index offset to a first data record in the repository having the key value; and a snapshot module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the system to; identify a final data record to be included in the snapshot; determine a snapshot offset of the final data record in the repository; create a copy of the index; and within the index copy, for each of the multiple keys; for each value of the key; determine whether the corresponding index offset is greater than the snapshot offset; and if the corresponding index offset is greater than the snapshot offset, prune the index offset until the corresponding index is less than or equal to the snapshot offset. - View Dependent Claims (18, 19)
-
Specification