US 12,423,003 B2
Synchronous replication of high throughput streaming data
Pavan Edara, Mountain View, CA (US); and Jonathan Forbes, Bellevue, WA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Feb. 9, 2023, as Appl. No. 18/166,834.
Application 18/166,834 is a continuation of application No. 17/098,306, filed on Nov. 13, 2020, granted, now 11,579,778.
Prior Publication US 2023/0195331 A1, Jun. 22, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01); G06F 11/14 (2006.01); G06F 11/30 (2006.01)
CPC G06F 3/0619 (2013.01) [G06F 3/0635 (2013.01); G06F 3/064 (2013.01); G06F 3/065 (2013.01); G06F 3/0653 (2013.01); G06F 3/0659 (2013.01); G06F 3/067 (2013.01); G06F 11/1446 (2013.01); G06F 11/1471 (2013.01); G06F 11/3034 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:
receiving, at a data block replicator, a stream of data blocks for storage at a first storage location of a distributed storage system and at a second storage location of the distributed storage system, the first storage location associated with a first geographical region and the second storage location associated with a second geographical region different than the first geographical region;
synchronously writing, from the data block replicator, the stream of data blocks to the first storage location and to the second storage location;
while synchronously writing the stream of data blocks to the first storage location and to the second storage location, determining an unrecoverable failure at the second storage location that prohibits further writing of the stream of data blocks to the second storage location;
determining a failure point in the writing of the stream of data blocks, the failure point demarcating data blocks that were successfully written to the second storage location and data blocks that were not successfully written to the second storage location;
synchronously writing, from the data block replicator and starting at the failure point, the stream of data blocks to the first storage location and to a third storage location of the distributed storage system simultaneously, the third storage location associated with a third geographical region different than the first geographical region and the second geographical region; and
based on determining the unrecoverable failure at the second storage location and after synchronously writing the stream of data blocks to the third storage location, asynchronously writing, from a beginning of the stream of data blocks to the failure point of the stream of data blocks, the data blocks to the third storage location from the data block replicator.