Differentiated secondary index maintenance in log structured NoSQL data stores
First Claim
1. A system for operating multi-node data stores, the system comprising:
- at least one memory device;
at least one processor,wherein the processor is configured to perform steps of;
storing at least one data table in at least one first computing node;
storing at least one index table in at least one second computing node, the index table providing keys used for accessing data in said first computing node and other multi-node data stores; and
performing operations that update or read the at least one data table accessed from the at least one first computing node and the at least one index table accessed from the at least one second computing node, the operations optimizing between latency in updating or reading the at least one data table and the at least one index table and data consistency maintained between data entries in the at least one data table and data entries pointed by indices in the at least one index table, said processor is further configured to perform;
inserting a new data entry to the at least one data table and synchronously inserting a corresponding new index entry into the at least one index table;
maintaining a corresponding stale index entry in the at least one index table upon the insertion of the corresponding new index entry to the at least one index table;
deleting the corresponding stale index entry in the at least one index table upon receiving a query to the corresponding stale index entry in the at least one index table; and
maintaining the data consistency between the least one index table and the at least one data table in response to receiving the query to the corresponding stale index entry in the at least one index table, the step of deleting the corresponding stale index entry comprising;
accessing the at least one index table by using a value of an index (vindex);
obtaining, from the accessed at least one index table, a first key and a first timestamp, corresponding to the vindex;
accessing the at least one data table by using a value of the first key;
obtaining, the accessed at least one data table, an up-to-date value of the index and an up-to-date timestamp, corresponding to the first key;
comparing the vindex against the up-to-date value of the index; and
determining that an up-to-date index entry is (the vindex ⊕
the value of the first key) if the vindex is equal to the up-to-date value of the index, where ⊕
represents a byte array concatenation operation;
determining that the corresponding stale index entry is (the vindex ⊕
the value of the first key) if the vindex is not equal to the up-to-date value of the index and the first timestamp is made prior to the up-to-date timestamp.
1 Assignment
0 Petitions
Accused Products
Abstract
There are provided a system and a computer program product for operating multi-node data stores. The system stores a data table in a first computing node and stores an index table in a second computing node. The index table provides keys used for accessing data in the first computing node and other multi-node data stores. The system performs operations that update or read the data table accessed from the first computing node and the index table accessed from the second computing node. The operations optimizes between latency in updating or reading the data table and the index table and data consistency maintained between data entries in the data table and data entries pointed by indices in the index table.
-
Citations
24 Claims
-
1. A system for operating multi-node data stores, the system comprising:
-
at least one memory device; at least one processor, wherein the processor is configured to perform steps of; storing at least one data table in at least one first computing node; storing at least one index table in at least one second computing node, the index table providing keys used for accessing data in said first computing node and other multi-node data stores; and performing operations that update or read the at least one data table accessed from the at least one first computing node and the at least one index table accessed from the at least one second computing node, the operations optimizing between latency in updating or reading the at least one data table and the at least one index table and data consistency maintained between data entries in the at least one data table and data entries pointed by indices in the at least one index table, said processor is further configured to perform; inserting a new data entry to the at least one data table and synchronously inserting a corresponding new index entry into the at least one index table; maintaining a corresponding stale index entry in the at least one index table upon the insertion of the corresponding new index entry to the at least one index table; deleting the corresponding stale index entry in the at least one index table upon receiving a query to the corresponding stale index entry in the at least one index table; and maintaining the data consistency between the least one index table and the at least one data table in response to receiving the query to the corresponding stale index entry in the at least one index table, the step of deleting the corresponding stale index entry comprising; accessing the at least one index table by using a value of an index (vindex); obtaining, from the accessed at least one index table, a first key and a first timestamp, corresponding to the vindex; accessing the at least one data table by using a value of the first key; obtaining, the accessed at least one data table, an up-to-date value of the index and an up-to-date timestamp, corresponding to the first key; comparing the vindex against the up-to-date value of the index; and determining that an up-to-date index entry is (the vindex ⊕
the value of the first key) if the vindex is equal to the up-to-date value of the index, where ⊕
represents a byte array concatenation operation;determining that the corresponding stale index entry is (the vindex ⊕
the value of the first key) if the vindex is not equal to the up-to-date value of the index and the first timestamp is made prior to the up-to-date timestamp. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for operating multi-node data stores, the computer program product comprising a storage medium that excludes a propagating signal, the storage medium readable by a processing circuit and storing instructions run by the processing circuit for performing a method, said method steps comprising:
-
storing at least one data table in at least one first computing node; storing at least one index table in at least one second computing node, the index table providing keys used for accessing data in said first computing node and other multi-node data stores; and performing operations that update or read the at least one data table accessed from the at least one first computing node and the at least one index table accessed from the at least one second computing node, the operations optimizing between latency in updating or reading the at least one data table and the at least one index table and data consistency maintained between data entries in the at least one data table and data entries pointed by indices in the at least one index table, said operations comprising; inserting a new data entry to the at least one data table and synchronously inserting a corresponding new index entry into the at least one index table; maintaining a corresponding stale index entry in the at least one index table upon the insertion of the corresponding new index entry to the at least one index table; deleting the corresponding stale index entry in the at least one index table upon receiving a query to the corresponding stale index entry in the at least one index table; and maintaining the data consistency between the least one index table and the at least one data table in response to receiving the query to the corresponding stale index entry in the at least one index table, the step of deleting the corresponding stale index entry comprising; accessing the at least one index table by using a value of an index (vindex); obtaining, from the accessed at least one index table, a first key and a first timestamp, corresponding to the vindex; accessing the at least one data table by using a value of the first key; obtaining, the accessed at least one data table, an up-to-date value of the index and an up-to-date timestamp, corresponding to the first key; comparing the vindex against the up-to-date value of the index; and determining that an up-to-date index entry is (the vindex ⊕
the value of the first key) if the vindex is equal to the up-to-date value of the index, where ⊕
represents a byte array concatenation operation;determining that the corresponding stale index entry is (the vindex ⊕
the value of the first key) if the vindex is not equal to the up-to-date value of the index and the first timestamp is made prior to the up-to-date timestamp. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification