Scalable log-based continuous data protection for distributed databases
First Claim
1. A system, comprising:
- a plurality of computing devices of a distributed non-relational database service of a provider network;
wherein the plurality of computing devices are configured to;
receive a request from a client via a programmatic interface to enable continuous data protection for a particular table to provide for point-in-time restore of the particular table, wherein at least a portion of the particular table is stored at one or more storage devices using an overwrite-in-place protocol;
in response to the request from the client to enable continuous data protection, initiate;
(a) transmission of change records of the particular table to a log-structured journal at which a write-once protocol is implemented, wherein a particular change record includes;
one or more before-values for one or more records modified in the particular table by a write operation directed to the particular table,one or more after-values for the one or more records modified in the particular table by the write operation directed to the particular table, anda respective sequence number indicative of an order in which the change records are processed by a journal manager of the log-structured journal, and(b) generation of a sequence of snapshots of the particular table, wherein a particular snapshot of the sequence of snapshots represents write operations performed on the particular table up to a corresponding snapshot request time, and wherein the particular snapshot is stored at a service other than the distributed non-relational database service;
in response to determining that a point-in-time restore operation with a targeted restoration time of the particular table is to be performed,identify, with respect to a selected snapshot of the sequence of snapshots, a restore record set stored in the log-structured journal, wherein a starting sequence number of the change records in the restore record set corresponds to a first change record which is not represented in the selected snapshot, and wherein an ending sequence number of the change records in the restore record set corresponds to a second change record which was inserted into the log-structured journal no later than the targeted restoration time;
initiate application of changes indicated in the restore record set to the selected snapshot to generate a restore-result table; and
provide an indication of the restore-result table to the client.
1 Assignment
0 Petitions
Accused Products
Abstract
In response to determining that continuous data protection is to be enabled for a particular table of a database service, a service component verifies that automated transmission of change records of the table to a log-structured journal has been configured. A given change record comprises a before-image and an after-image associated with a committed database write, and is assigned a unique sequence number. In response to a determination to restore the table as of a specified point in time, a restore record set is identified from the journal with respect to a selected snapshot of the table. The restore record set includes change records which are not represented in the snapshot and are to be represented in the restored table. A restore result table is created using the selected snapshot and the restore record set.
179 Citations
21 Claims
-
1. A system, comprising:
-
a plurality of computing devices of a distributed non-relational database service of a provider network; wherein the plurality of computing devices are configured to; receive a request from a client via a programmatic interface to enable continuous data protection for a particular table to provide for point-in-time restore of the particular table, wherein at least a portion of the particular table is stored at one or more storage devices using an overwrite-in-place protocol; in response to the request from the client to enable continuous data protection, initiate; (a) transmission of change records of the particular table to a log-structured journal at which a write-once protocol is implemented, wherein a particular change record includes; one or more before-values for one or more records modified in the particular table by a write operation directed to the particular table, one or more after-values for the one or more records modified in the particular table by the write operation directed to the particular table, and a respective sequence number indicative of an order in which the change records are processed by a journal manager of the log-structured journal, and (b) generation of a sequence of snapshots of the particular table, wherein a particular snapshot of the sequence of snapshots represents write operations performed on the particular table up to a corresponding snapshot request time, and wherein the particular snapshot is stored at a service other than the distributed non-relational database service; in response to determining that a point-in-time restore operation with a targeted restoration time of the particular table is to be performed, identify, with respect to a selected snapshot of the sequence of snapshots, a restore record set stored in the log-structured journal, wherein a starting sequence number of the change records in the restore record set corresponds to a first change record which is not represented in the selected snapshot, and wherein an ending sequence number of the change records in the restore record set corresponds to a second change record which was inserted into the log-structured journal no later than the targeted restoration time; initiate application of changes indicated in the restore record set to the selected snapshot to generate a restore-result table; and provide an indication of the restore-result table to the client. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
performing, by one or more nodes of a database service of a provider network, wherein the one or more nodes are implemented at one or more computing devices; determining that continuous data protection for a particular table of the database service is to be enabled; in response to determining that continuous data protection is to be enabled, initiating; (a) transmission of change records of the particular table to a log-structured journal, wherein a particular change record includes; one or more before-values for one or more records modified in the particular table by a write operation directed to the particular table, and one or more after-values for the one or more records modified in the particular table by the write operation directed to the particular table, and (b) generation of one or more snapshots of the particular table; in response to determining a target restoration time of the particular table, identifying, with respect to a selected snapshot of the one or more snapshots, a restore record set stored in the log-structured journal, wherein a starting sequence number of the change records in the restore record set corresponds to a first change record which is not represented in the selected snapshot, and wherein an ending sequence number of the change records in the restore record set corresponds to a second change record which was inserted into the log-structured journal no later than the target restoration time; and initiating a generation of a restore-result table, wherein the generation of the restore-result table includes applying changes indicated in the restore record set to the selected snapshot. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
determine that continuous data protection is to be enabled for a particular table of a database service; in response to determining that continuous data protection is to be enabled, verify that automated transmission of change records of the particular table to a log-structured journal has been configured, wherein a particular change record includes; one or more before-values for one or more records modified in the particular table by a write operation directed to the particular table, and one or more after-values for the one or more records modified in the particular table by the write operation directed to the particular table; in response to determining a target restoration time of the particular table, identify, with respect to a selected snapshot of one or more snapshots of the particular table, a restore record set stored in the log-structured journal, wherein a starting sequence number of the change records in the restore record set corresponds to a first change record which is not represented in the selected snapshot, and wherein an ending sequence number of the change records in the restore record set corresponds to a second change record which was inserted into the log-structured journal no later than the target restoration time; and initiate generation of a restore-result table, wherein the generation of the restore-result table includes application of changes indicated in the restore record set to the selected snapshot. - View Dependent Claims (18, 19, 20, 21)
-
Specification