| CPC G06F 16/273 (2019.01) [G06F 16/2365 (2019.01); G06F 16/256 (2019.01); G06F 16/285 (2019.01)] | 20 Claims |

|
1. A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:
accessing a distributed database comprising a plurality of clusters, each cluster of the plurality of clusters comprising a respective plurality of partitions, each cluster of the plurality of clusters configured to receive read and write operations, wherein:
the respective plurality of partitions of a first cluster of the plurality of clusters stores a first table comprising a first respective plurality of rows, each respective partition of the respective plurality of partitions of the first cluster comprising a respective portion of the first respective plurality of rows; and
the respective plurality of partitions of a second cluster of the plurality of clusters stores a second table comprising a second respective plurality of rows, each respective partition of the respective plurality of partitions of the second cluster comprising a respective portion of the second respective plurality of rows;
receiving, at the second cluster, a plurality of changes for the second table;
storing the plurality of changes at a replication log;
asynchronously replicating the plurality of changes from the second table to the first table;
while asynchronously replicating the plurality of changes from the second table to the first table, for each row of the first respective plurality of rows of each respective partition of the respective plurality of partitions of the first cluster, maintaining a respective change stream position, the respective change stream position tracking a respective position in the replication log indicating one or more changes of the plurality of changes that have been replicated;
receiving a read request at the first cluster requesting one or more rows of the first respective plurality of rows, the one or more rows associated with a first subset of partitions of the respective plurality of partitions of the first cluster; and
in response to the read request, returning, for each respective partition of the first subset of partitions, the respective change stream position.
|