PERFORMING UPDATES ON VARIABLE-LENGTH DATA SEQUENTIALLY STORED AND INDEXED TO FACILITATE REVERSE READING
First Claim
1. A method of performing an update operation on a collection of data records stored in a manner that facilitates reverse reading,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 most recent data record in the collection having the key value;
the method comprising;
obtaining a set of new records associated with the update operation;
based on an assumed write location for the set of new records, configuring the set of new records such that each new record includes, for each of the multiple keys, a corresponding key offset to a previous record having the same value as the new record for the key;
determining whether a current write location matches the assumed write location;
when the current write location does not match the assumed write location, updating the set of new records based on the current write location;
writing the set of new records at the current write location; and
updating the index.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and apparatus are provided for performing update operations on variable-length data records stored and indexed to facilitate reverse reading. Each record contains a key offset for each key field, and the key offset stores a reference (e.g., an offset) to the next most recently stored record that has the same value for the key. Key offsets of a new set of records are configured based on the data index and an assumed write location (e.g., an end offset of the data). The data repository is locked and, if no other intervening records were stored, the new ones are written, the index is updated, and the lock is released. If intervening records were stored, the new set of records is adjusted further based on the current index and the current write location, the records are stored, the index is updated, and the lock is released.
54 Citations
20 Claims
-
1. A method of performing an update operation on a collection of data records stored in a manner that facilitates reverse reading,
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 most recent data record in the collection having the key value; the method comprising; obtaining a set of new records associated with the update operation; based on an assumed write location for the set of new records, configuring the set of new records such that each new record includes, for each of the multiple keys, a corresponding key offset to a previous record having the same value as the new record for the key; determining whether a current write location matches the assumed write location; when the current write location does not match the assumed write location, updating the set of new records based on the current write location; writing the set of new records at the current write location; and updating the index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for performing an update operation on a collection of data records stored in a manner that facilitates reverse reading,
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 most recent data record in the collection 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; obtain a set of new records associated with the update operation; based on an assumed write location for the set of new records, configure the set of new records such that each new record includes, for each of the multiple keys, a corresponding key offset to a previous record having the same value as the new record for the key; determine whether a current write location matches the assumed write location; when the current write location does not match the assumed write location, update the set of new records based on the current write location; write the set of new records at the current write location; and update the index. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system for performing an update operation on a collection of data records stored in a manner that facilitates reverse reading, the system 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 most recent data record in the collection having the key value; and an update module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the system to; obtain a set of new records associated with the update operation; based on an assumed write location for the set of new records, configure the set of new records such that each new record includes, for each of the multiple keys, a corresponding key offset to a previous record having the same value as the new record for the key; determine whether a current write location matches the assumed write location; when the current write location does not match the assumed write location, update the set of new records based on the current write location; write the set of new records at the current write location; and update the index. - View Dependent Claims (17, 18, 19, 20)
-
Specification