Consistent query of local indexes
First Claim
1. A system for storing and retrieving data, the system comprising:
- a first computing node comprising a first one or more storage devices and a memory, the one or more storage devices having stored thereon a collection of items; and
one or more non-transitory memories having stored thereon computer-readable instructions that, upon execution, cause the system at least to;
receive from a client a request to perform a database query, the query comprising information indicative of a range of at least one item in the collection of items and information indicative of a projection of the at least one item;
read a first value corresponding to a portion of the at least one item stored in a first data structure on the one or more storage devices;
read a second value corresponding to the portion of the at least one item from a second data structure stored in the memory; and
return to the client a view of the at least one item, the view including the projection and the second value instead of the first value in response to determining that the second value is considered durable by a threshold number of computing nodes, and to determining that the second value is consistent with the information indicative of the range.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed database management system may comprise a plurality of computing nodes. A request to update an item maintained by the system may be acknowledged as durable and committed once an entry corresponding to the request has been written to a log file and quorum among the computing nodes has been achieved. Improved consistency may be achieved by maintaining snapshots of committed item states within queryable in-memory snapshot data structures. Range queries may be performed by merging a secondary index with the snapshots and applying filters. Projections may be completed by retrieving additional data from an item collection maintain on one or more storage devices.
-
Citations
22 Claims
-
1. A system for storing and retrieving data, the system comprising:
-
a first computing node comprising a first one or more storage devices and a memory, the one or more storage devices having stored thereon a collection of items; and one or more non-transitory memories having stored thereon computer-readable instructions that, upon execution, cause the system at least to; receive from a client a request to perform a database query, the query comprising information indicative of a range of at least one item in the collection of items and information indicative of a projection of the at least one item; read a first value corresponding to a portion of the at least one item stored in a first data structure on the one or more storage devices; read a second value corresponding to the portion of the at least one item from a second data structure stored in the memory; and return to the client a view of the at least one item, the view including the projection and the second value instead of the first value in response to determining that the second value is considered durable by a threshold number of computing nodes, and to determining that the second value is consistent with the information indicative of the range. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method for storing and retrieving data, the method comprising:
-
receiving from a client a request to perform a database query, the database query comprising information indicative of a range of at least one item in a collection of items; reading a first value corresponding to a portion of the at least one item stored in a first data structure on one or more storage devices; reading a second value corresponding to the portion of the at least one item from a second data structure stored in a memory; and returning to the client a view of the at least one item, the view including the second value instead of the first value in response to determining that a threshold number of computing nodes have written information indicative of the second value to a log file, and to determining that the second value is consistent with the information indicative of the range. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium having stored thereon instructions that, upon execution by a computing device, cause the computing device at least to:
-
receive from a client a request to perform a database query, the database query comprising information indicative of a range of at least one item in a collection of items; read a first value corresponding to a portion of the at least one item stored in a first data structure on one or more storage devices; read a second value corresponding to the portion of the at least one item from a second data structure stored in a memory; and return to the client a view of the at least one item comprising the second value instead of the first value in response to determining that a threshold number of computing nodes have written information indicative of the second value to a log file, and to determining that the second value is consistent with the information indicative of the range. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system for storing and retrieving data, the system comprising:
-
a first computing node comprising a first one or more storage devices and a memory, the one or more storage devices having stored thereon a collection of items; and one or more non-transitory memories having stored thereon computer-readable instructions that, upon execution, cause the system at least to; perform a database query, the query comprising criteria corresponding to at least one item in the collection of items and information indicative of a projection; read a first value corresponding to a portion of the at least one item stored in a first data structure on the one or more storage devices; read a second value corresponding to the portion of the at least one item from a second data structure stored in the memory; and form a view of the at least one item, the view including the projection and the second value instead of the first value in response to determining that the second value is considered durable by a threshold number of computing nodes, and to determining that the second value conforms to the criteria. - View Dependent Claims (19, 20, 21, 22)
-
Specification