Index Update Pipeline
First Claim
1. A distributed database management system comprising:
- a first computing node comprising a first one or more storage devices, the first one or more storage devices having stored thereon a log file and a first collection of items corresponding to a first index;
a second computing node comprising a memory and a second one or more storage devices, the second one or more storage devices having stored thereon a second index, the second index corresponding to a version of at least a subset of the first collection;
one or more memories having stored thereon computer readable instructions that, upon execution, cause the system at least to;
write, to the log file, an instruction corresponding to a first operation on the first index, the first operation corresponding to a first request to modify the first collection of items;
send the instruction from the log file to the second computing node, based at least in part on a record of a last instruction received from the first computing node and performed by the second computing node on the second index; and
perform, by the second computing node, a second operation on the second index, the second operation based at least in part on the instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
Distributed database management systems may maintain collections of items spanning multiple partitions. Index structures may correspond to items on one partition or to items on multiple partitions. Item collections and indexes may be replicated. Changes to the data maintained by the distributed database management system may result in updates to multiple index structures. The changes may be compiled into an instruction set applicable to the index structures. In-memory buffers may contain the instructions prior to transmission to affected partitions. Replication logs may be combined with an acknowledgment mechanism for reliable transmission of the instructions to the affected partitions.
-
Citations
26 Claims
-
1. A distributed database management system comprising:
-
a first computing node comprising a first one or more storage devices, the first one or more storage devices having stored thereon a log file and a first collection of items corresponding to a first index; a second computing node comprising a memory and a second one or more storage devices, the second one or more storage devices having stored thereon a second index, the second index corresponding to a version of at least a subset of the first collection; one or more memories having stored thereon computer readable instructions that, upon execution, cause the system at least to; write, to the log file, an instruction corresponding to a first operation on the first index, the first operation corresponding to a first request to modify the first collection of items; send the instruction from the log file to the second computing node, based at least in part on a record of a last instruction received from the first computing node and performed by the second computing node on the second index; and perform, by the second computing node, a second operation on the second index, the second operation based at least in part on the instruction. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method for storing and retrieving data, the method comprising:
-
recording, in a log file of a first computing node, information indicative of an instruction corresponding to a first operation on a first index of a first collection of items, the first operation corresponding to a first request to modify the first collection of items; sending, by the first computing node, the information indicative of the instruction to a second computing node based at least in part on a record of a last instruction performed by the second computing node; and performing, by the second computing node, a second operation on a second index, the second index corresponding to a version of at least a subset of the first collection, the second operation based at least in part on the information indicative of the instruction. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. 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 first computing node, information indicative of an instruction, the instruction corresponding to a first operation on a first index, the first operation corresponding to a first request to modify a first collection of items; perform a second operation on a second index, the second operation based at least in part on the information indicative of the instruction, the second index corresponding to a version of at least a subset of the first collection of items; and update a record of a last instruction performed on the computing device, the record comprising an indication of the first computing node. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A system for storing and retrieving data, the system comprising:
-
a first computing node comprising a first memory and a first one or more storage devices, the first one or more storage devices having stored thereon a first index associated with a first collection of items; a second computing node comprising a second memory and a second one or more storage devices, the second one or more storage devices having stored thereon a second index; and one or more processors configured to receive a request to change an item in the first collection of items; one or more processors configured to determine one or more instructions based at least in part on the request, the one or more instructions indicative of one or more operations on the first index; one or more processors configured to update the first index on the first computing node, based at least in part on the one or more instructions; and one or more processors configured to update the second index on the second computing node, based at least in part on the one or more instructions. - View Dependent Claims (23, 24, 25, 26)
-
Specification