US 11,789,971 B1
Adding replicas to a multi-leader replica group for a data set
Sharatkumar Nagesh Kuppahally, Issaquah, WA (US); Somasundaram Perianayagam, Seattle, WA (US); Hao He, Seattle, WA (US); James Christopher Sorenson, III, Seattle, WA (US); Akshat Vig, Seattle, WA (US); Oren Yossef, Bellevue, WA (US); Sanjay Shanthakumar, Newark, CA (US); Chase Kernan, Seattle, WA (US); Alexander Richard Keyes, Seattle, WA (US); Akanksha Fouzdar, Sunnyvale, CA (US); Sudhir Konduru, Sunnyvale, CA (US); and Arijit Choudhury, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Dec. 2, 2019, as Appl. No. 16/700,131.
Int. Cl. G06F 16/27 (2019.01); G06F 16/23 (2019.01); G06F 11/14 (2006.01); G06F 16/22 (2019.01)
CPC G06F 16/27 (2019.01) [G06F 11/1448 (2013.01); G06F 16/2282 (2019.01); G06F 16/2365 (2019.01); G06F 2201/84 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a plurality of computing devices, wherein each computing device of the plurality of computing devices comprises a memory and at least one processor for implementing a database service, and wherein, to implement the database service, the memory and the at least one processor of each computing device of the plurality of computing devices are configured to:
add a new replica of a database table to a group of replicas of the database table that replicate received client updates performed at individual replicas in the group of replicas to other replicas in the group of replicas to maintain eventual consistency between the replicas of the group of replicas, wherein to add the new replica, the database service is configured to:
copy, from a first replica of the group of replicas and to the new replica, a snapshot of the database table that corresponds to a point in time;
send, from the first replica and to the new replica, additional client updates to the database table, wherein the additional client updates to the data table are performed at the first replica and occur after the point in time of the copied snapshot;
send, from the first replica and to the new replica, other client updates to the database table that were performed at a second replica of the database table and replicated to the first replica, wherein the other client updates occurred before the point in time of the copied snapshot and were not included in the snapshot copied to the new replica, and wherein the other client updates are based on a last write wins conflict scheme, performed at the new replica, to resolve, at the new replica, two or more other client updates that are conflicting;
send, from the second replica and to the new replica, further updates to the database table performed at the second replica and that occur after the point in time of the copied snapshot; and
after copying the snapshot of the database table to the new replica, allow access requests to the new replica of the database table.