US 12,032,562 B1
Data event management for monotonic read consistency in a distributed storage system
James Zuber, Seattle, WA (US); Abhishek Kannan, Bellevue, WA (US); Vishwas Narendra, Evanston, IL (US); Ernest S. Cohen, Wyncote, PA (US); Bryan T. Wilkinson, Seattle, WA (US); Sameer Choudhary, Seattle, WA (US); Phillip H. Pruett, Woodinville, WA (US); Nikhil Shah, Redmond, WA (US); and Wilson Li, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 30, 2021, as Appl. No. 17/491,029.
Int. Cl. G06F 16/23 (2019.01); G06F 16/22 (2019.01); H04L 67/1097 (2022.01)
CPC G06F 16/2386 (2019.01) [G06F 16/2255 (2019.01); G06F 16/235 (2019.01); G06F 16/2365 (2019.01); H04L 67/1097 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A distributed storage system comprising:
a witness service comprising a plurality of witness nodes, wherein a witness node of the plurality of witness nodes stores a hash table comprising sequence data that associates a first key of a first data item of a plurality of data items with a first sequence number, and wherein the first sequence number is associated with a first modification to the first data item; and
a storage service comprising a transaction log and a plurality of persistent storage nodes, wherein the transaction log stores a record comprising the first key, a second sequence number, and data regarding a second modification to the first data item, and wherein a first persistent storage node of the plurality of persistent storage nodes is configured to at least:
obtain the record from the transaction log;
add the record to a batch of records from the transaction log;
determine that a batch update criterion has been satisfied;
send a batch update message to the witness service, wherein the batch update message comprises a plurality of keys and a plurality of corresponding sequence numbers, wherein the plurality of keys includes the first key, and wherein the plurality of corresponding sequence numbers includes the second sequence number;
store data from each record of the batch of records to persistent storage; and
broadcast a gossip message regarding the batch update message to other persistent storage nodes of the plurality of persistent storage nodes, wherein the gossip message causes at least a second persistent storage node of the plurality of persistent storage nodes to omit records of the batch of records from a second batch update message.