CPC G06F 11/1464 (2013.01) [G06F 11/1425 (2013.01); G06F 11/1469 (2013.01); G06F 16/1844 (2019.01)] | 20 Claims |
1. A system, comprising:
a plurality of replication regions respectively comprising one or more processors and memory;
a control plane for a distributed data store, the control plane comprising one or more processors and memory configured to:
configure, according to replication criteria, the plurality of replication regions into a one or more replication groups of the distributed data store, wherein a number of the one or more replication groups is less than a number of the plurality of replication regions, wherein individual ones of the one or more replication groups respectively comprise a primary data region of the plurality of replication regions, and wherein a replication group of the one or more replication groups further comprises a secondary data region of the plurality of replication regions communicatively coupled via another network to the primary data region of the replication group;
a replication coordinator of the distributed data store comprising one or more processors and memory and communicatively coupled via the network to the one or more replication groups, wherein the one or more processors and memory of the replication coordinator are different from the respective one or more processors and memory of individual ones of the plurality of replication regions, wherein the replication coordinator is configured to replicate a change to data stored in the distributed data store to individual ones of the one or more replication groups according to the replication criteria, wherein to replicate the change the replication coordinator is configured to:
send respective replication requests comprising the change to respective primary replication regions of individual ones of the replication groups;
receive respective completion messages for individual ones of the replication requests from the respective primary replication regions of individual ones of the replication groups; and
update, responsive to receiving the respective completion messages, replication state for the distributed data store to indicate replication of the change;
the primary data region of the replication group configured to:
receive the respective replication request comprising the change from the replication coordinator, and responsive to receiving the respective request:
apply the change to a replica of the data local to the primary data region;
send another replication request comprising the change to the secondary data region of the replication group;
receive a completion message for the other replication request from the secondary data region of the replication group;
send a completion message to the replication coordinator to cause the replication coordinator to update the replication state for the distributed data store prior to receiving the completion message for the other replication request from the secondary data region of the replication group; and
update, responsive to at least receiving the completion message for the other replication request from the secondary data region of the replication group, replication state for the replication group to indicate replication of the change, wherein the replication state for the replication group is different from the replication state for the distributed data store.
|