×

Differentiated secondary index maintenance in log structured NoSQL data stores

  • US 10,078,682 B2
  • Filed: 12/21/2015
  • Issued: 09/18/2018
  • Est. Priority Date: 03/15/2013
  • Status: Expired due to Fees
First Claim
Patent Images

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 all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×