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 |
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.
|