US 12,271,278 B2
Systems and methods for synchronizing between a source database cluster and a destination database cluster
Ryan Chipman, Westwood, MA (US); Lingzhi Deng, Jersey City, NJ (US); Tim Fogarty, Amsterdam (NL); Max Jacob Hirschhorn, New York, NY (US); Samyukta Lanka, New York, NY (US); Judah Schvimer, New York, NY (US); Andrew Michalski Schwerin, Providence, RI (US); Randolph Tan, Astoria, NY (US); and Mark Porter, Seattle, WA (US)
Assigned to MongoDB, Inc., New York, NY (US)
Filed by MongoDB, Inc., New York, NY (US)
Filed on Jun. 5, 2023, as Appl. No. 18/329,021.
Claims priority of provisional application 63/349,392, filed on Jun. 6, 2022.
Claims priority of provisional application 63/349,336, filed on Jun. 6, 2022.
Prior Publication US 2023/0394064 A1, Dec. 7, 2023
Int. Cl. G06F 16/28 (2019.01); G06F 11/20 (2006.01); G06F 16/23 (2019.01); G06F 16/27 (2019.01)
CPC G06F 11/2041 (2013.01) [G06F 16/2365 (2019.01); G06F 16/2379 (2019.01); G06F 16/27 (2019.01); G06F 16/285 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A system comprising:
a plurality of replicators coupled to a source database cluster and a destination database cluster; and at least one processor configured to cause the plurality of replicators to replicate data on the source database cluster to the destination database cluster, wherein each of the source database cluster and the destination database cluster is a shard cluster comprising multiple shard servers hosting multiple shards of data;
wherein: each of the plurality of replicators, executed by the at least one processor, to replicate data on a respective subset of the source database cluster to the destination database cluster; a first replicator of the plurality of replicators, executed by the at least one processor, to replicate data from a first subset of the source database cluster to the destination database cluster at least partially in parallel with a second replicator of the plurality of replicators replicating data from a second subset of the source database cluster to the destination database cluster; and
each of the plurality of replicators further replicates indexes of data from the source database cluster while replicating the data from the source database cluster to the destination database cluster; and the at least one processor is further configured to:
cause each of the first replicator and the second replicator to replicate the indexes as non-unique indexes; and
convert the non-unique index to unique indexes when replications of the plurality of replicators including the at least the first and second replicators are committed.