US 12,353,437 B2
Synchronous replication in a distributed storage environment
Bradley Gene Calder, Bellevue, WA (US); Niranjan Nilakantan, Redmond, WA (US); Shashwat Srivastav, Seattle, WA (US); Jiesheng Wu, Redmond, WA (US); Abdul Rafay Abbasi, Redmond, WA (US); Shane Mainali, Duvall, WA (US); and Padmanabha Chakravarthy Uddaraju, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jun. 8, 2023, as Appl. No. 18/331,404.
Application 18/331,404 is a continuation of application No. 15/377,742, filed on Dec. 13, 2016, granted, now 11,720,594.
Application 15/377,742 is a continuation of application No. 13/113,702, filed on May 23, 2011, granted, now 9,519,555, issued on Dec. 13, 2016.
Prior Publication US 2023/0315758 A1, Oct. 5, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/27 (2019.01); G06F 11/20 (2006.01); G06F 16/23 (2019.01)
CPC G06F 16/275 (2019.01) [G06F 11/2076 (2013.01); G06F 16/2343 (2019.01); G06F 16/2379 (2019.01); G06F 11/2074 (2013.01); G06F 16/27 (2019.01); G06F 2201/855 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method for synchronous replication in a distributed storage environment, the method comprising:
accessing, at a primary data store, a data portion from a client, wherein the primary data store and a secondary data store are configured for eventual consistency synchronous replication;
transmitting the data portion to the secondary data store to cause recording of the data portion to a log that is configured to be replayed at the secondary data store, without committing the data portion at the secondary data store;
based on causing the recording of the data portion at the log, committing the data portion at the primary data store;
transmitting an acknowledgement of committing the data portion at the primary data store; and
based on committing the data portion at the primary data store and transmitting the acknowledgment of committing the data portion at the primary data store, committing the data portion at the secondary data store based on accessing and replaying the log of the data portion to cause eventual committal of the data portion.