DATABASE SYSTEM WITH DATABASE ENGINE AND SEPARATE DISTRIBUTED STORAGE SERVICE
First Claim
1. A computing system, comprising:
- a plurality of computing nodes, each of which comprises at least one processor and a memory;
wherein one or more of the plurality of computing nodes is configured to implement a database service, and wherein the database service comprises a database engine head node;
wherein two or more other ones of the plurality of computing nodes are configured to implement server nodes of a distributed storage service that stores portions of database tables as respective data pages on one or more storage devices;
wherein the database engine head node is configured to;
receive, from a client of the database service, a write request directed to a given data record in a database table, wherein the write request specifies a modification to be made to the given data record;
generate a redo log record representing the modification to be made to the given data record;
send the redo log record, but not a data page comprising the given data record, to a particular server node of the distributed storage service that stores a version of the data page comprising the given data record;
wherein the particular server node of the distributed storage service is configured to;
receive the redo log record from the database engine head node;
write the redo log record to one or more storage devices;
return, to the database engine head node, an acknowledgement that the redo log record was written; and
subsequent to returning the acknowledgement;
generate a current version of the data page comprising the given data record, wherein to generate the current version of the data page, the particular server node of the distributed storage service is configured to apply the received redo log record and one or more other redo log records representing modifications to the data page to a previously stored version of the data page; and
write the current version of the data page to one or more storage devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A database system may include a database service and a separate distributed storage service. The database service (or a database engine head node thereof) may be responsible for query parsing, optimization, and execution, transactionality, and consistency, while the storage service may be responsible for generating data pages from redo log records and for durability of those data pages. For example, in response to a write request directed to a particular data page, the database engine head node may generate a redo log record and send it, but not the data page, to a storage service node. The storage service node may store the redo log record and return a write acknowledgement to the database service prior to applying the redo log record. The server node may apply the redo log record and other redo log records to a previously stored version of the data page to create a current version.
98 Citations
28 Claims
-
1. A computing system, comprising:
-
a plurality of computing nodes, each of which comprises at least one processor and a memory; wherein one or more of the plurality of computing nodes is configured to implement a database service, and wherein the database service comprises a database engine head node; wherein two or more other ones of the plurality of computing nodes are configured to implement server nodes of a distributed storage service that stores portions of database tables as respective data pages on one or more storage devices; wherein the database engine head node is configured to; receive, from a client of the database service, a write request directed to a given data record in a database table, wherein the write request specifies a modification to be made to the given data record; generate a redo log record representing the modification to be made to the given data record; send the redo log record, but not a data page comprising the given data record, to a particular server node of the distributed storage service that stores a version of the data page comprising the given data record; wherein the particular server node of the distributed storage service is configured to; receive the redo log record from the database engine head node; write the redo log record to one or more storage devices; return, to the database engine head node, an acknowledgement that the redo log record was written; and subsequent to returning the acknowledgement; generate a current version of the data page comprising the given data record, wherein to generate the current version of the data page, the particular server node of the distributed storage service is configured to apply the received redo log record and one or more other redo log records representing modifications to the data page to a previously stored version of the data page; and write the current version of the data page to one or more storage devices. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
one or more computing nodes, each of which comprises at least one processor and a memory, wherein the one or more computing nodes are configured to collectively implement a database service, and where the database service comprises a database engine head node and an interface to a distributed storage system; wherein the database engine head node is configured to; receive, from a client of the database service, a write request directed to a given data record in a database table, wherein the write request specifies a modification to be made to the given data record; generate a redo log record representing the modification to be made to the given data record; send, via the interface, the redo log record, but not a data page comprising the given data record, to a particular server node of the distributed storage service that stores a version of the data page comprising the given data record; receive, via the interface, an acknowledgment that the redo log record has been written to the distributed storages service; and return, to the database client, a response indicating that the requested write has been performed. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A system, comprising:
-
one or more computing nodes, each of which comprises at least one processor and a memory, wherein the one or more computing nodes are configured to collectively implement a distributed storage service that stores data blocks on one or more storage devices on behalf of a client of the distributed storage service; wherein a given one of the one or more computing nodes is configured to; receive, from the client, an update record for a particular data block that is stored on the given computing node, wherein the update record specifies a modification to be made to the particular data block; write the update record to one or more of the one or more storage devices; and return, to the client, an acknowledgement that the update record was written, without waiting for a current version of the particular data block to be generated or for the modification specified in the update record to be applied to the particular data block. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
receiving a query comprising a write request targeting a data block that is stored in a distributed storage system, wherein the write request specifies a modification to be made to the data block; generating a redo log record representing the modification to be made to the data block; determining a node in the distributed storage system that stores the data block; sending the redo log record, but not a copy of the data block, to the determined node in the distributed storage system; and receiving an acknowledgement from the determined node in the distributed storage system that the redo log record has been written to a storage device on the determined node. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A non-transitory computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
storing a plurality of data pages comprising data records of a database table on one or more storage system server nodes, each comprising one or more storage devices; receiving a redo log record directed to a particular data page; storing the redo log record on one or more of the storage devices; determining that a coalescing operation is warranted for the particular data page; in response to said determining; performing a coalescing operation for the particular data page, wherein performing the coalescing operation comprise applying the redo log record and one or more other redo log records to a previously generated version of the particular data page to generate a current version of the particular data page; and storing the current version of the particular data page one or more of the storage devices. - View Dependent Claims (25, 26, 27, 28)
-
Specification