Lightweight in-memory database with HTTP-based synchronization
AssigneeAmazon Technologies, Inc.
InventorRolando Santamaria Maso
Life of this patent
Estimating the term…
Abstract
A collection of data is maintained by at least first and second nodes of a distributed database. The first node maintains a first subset of the collection of data in a first random-access memory, and the second node maintains a second subset of the collection of data in a second random access memory. The first node sends an HTTP-based request to obtain updates to the first subset of the collection of data. The request comprises a unique sortable identifier. The first node receives data from the second node, and updates the first subset of the collection of data based on the receive data.
Claims20
A distributed database, comprising:
- at least one processor;
- and
- memory comprising computer-executable instructions that, in response to execution by the at least one processor, cause the distributed database to at least:
- maintain, by a plurality of nodes, a collection of key-value data, wherein the plurality of nodes comprises at least a first node and a second node, wherein the first node comprises an interface to a selectable storage system and a selected first storage subsystem;
- maintain, by the first node, a first subset of the collection of key-value data on the selected first storage subsystem;
- maintain, by the second node, a second subset of the collection of key-value data on a second selected storage subsystem;
- replicate data, by the first node, from the second node by sending, to the second node, an HTTP-based request to obtain updates to the collection of key-value data, the HTTP-based request comprising a unique lexicographically sortable identifier, the unique lexicographically sortable identifier representing a most recent update of each respective node of the plurality of nodes;
- identify, by the second node, data in the second subset of the collection of key-value data to send to the first node based, at least in part, on a comparison between the unique lexicographically sortable identifier and one or more previously received unique lexicographically sortable identifiers;
- and
- update, by the first node, the first subset of the collection of data based, at least in part, on the data sent by the second node.
A computer-implemented method, comprising:
- maintaining a first subset of a collection of data by a first storage subsystem of a first node of a distributed database, wherein a second subset of the collection of data is maintained by a second storage subsystem of a second node of the distributed database;
- sending, from the first node to the second node, an HTTP-based request to obtain updates to the first subset of the collection of data, the HTTP-based request comprising a unique lexicographically sortable identifier, the unique lexicographically sortable identifier representing a most recent update of corresponding nodes of the distributed database;
- receiving data from the second node, the received data selected for sending by the second node based, at least in part, on a comparison between the unique lexicographically sortable identifier and one or more previously received unique lexicographically sortable identifiers;
- and
- updating, by the first storage subsystem of the first node, the first subset of the collection of data based, at least in part, on the data sent by the second node.
A non-transitory computer-readable storage medium storing thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- store a first subset of a collection of data by a first storage subsystem of a first node of a distributed database;
- send, from the first node to a second node, an HTTP-based request to obtain updates to the first subset of the collection of data, the HTTP-based request comprising a unique lexicographically sortable identifier, the unique lexicographically sortable identifier representing a most recent update of each respective node of the distributed database;
- receive data selected by the second node based, at least in part, on a comparison between the unique lexicographically sortable identifier and one or more previously received unique lexicographically sortable identifiers;
- and
- update, by the first storage subsystem of the first node, the first subset of the collection of data based, at least in part, on the data sent from the second node.
Dependencies are inferred from the claim text.