US 12,007,977 B1
Selectively applying a replication log for logical database replica creation
Omendra Pratap Singh, Bellevue, WA (US); Jiancheng Wang, Providence, RI (US); Mostafa Elhemali, Seattle, WA (US); Sroaj Sosothikul, Seattle, WA (US); Jhansi Lakshmi Kolla, Snohomish, WA (US); Wan Man Ryan Chan, Seattle, WA (US); and Somasundaram Perianayagam, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 30, 2022, as Appl. No. 17/936,967.
Int. Cl. G06F 16/23 (2019.01)
CPC G06F 16/2358 (2019.01) 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a plurality of computing devices, configured to implement a database service that hosts a database, wherein the database service comprises a control plane and one or more storage nodes that implement a replica group that maintain respective replicas of the database;
wherein the control plane is configured to add a new replica to the replica group for the database, wherein to add the new replica, the control plane is configured to identify a target storage node for the new replica;
wherein the target storage node is configured to:
send a plurality of requests to obtain paginated results of a scan of ordered items of the database to store in the new replica from a source storage node of the one or more storage nodes of the replica group, wherein individual results of the paginated results correspond to respective log sequence numbers of log records in a replication log consistent with the paginated results, wherein the replication log describes an order of changes applied to the database;
store the paginated results in the new replica;
obtain the replication log for the database from the source storage node between a consistent state of the database already stored and the log sequence number value for the paginated result; and
selectively apply log records from the replication log to individual results of the paginated results according to one or more application rules that determine whether to ignore a change described in a log record of the replication log.