Patent ID: 11899654
Assignee: VMWARE LLC
Field: Computer technology (Electrical engineering)
Classification: CPC G  H | IPC G

Claim 13:
14. A method for achieving agreement among a plurality of computing systems to a proposed value via an instance of a Byzantine agreement protocol, the method comprising, by a first computing system among the plurality of computing systems:
running a synchronous agreement sequence of the instance of the Byzantine agreement protocol on the proposed value by instantiating, in sequential order, one or more view instances using a different computing system among the plurality of computing systems as a leader for each view instance, wherein the leader in a view instance sends a sequence of messages to each computing system among the plurality of computing systems to commit to the proposed value;
sending a help message to each computing system among the plurality of computing systems when the first computing system has not committed to the proposed value in a previous view instance in the one or more view instances, the help message being a request to each of the plurality of computing systems to return a help reply message that includes a commit certificate indicating that said each computing system committed to the proposed value in the previous view instance;
upon receiving help reply messages from at least a predetermined number of the plurality of computing systems, committing to the proposed value and halting the instance of the Byzantine agreement protocol; and
upon receiving help messages from at least the predetermined number of the plurality of computing systems, transitioning from running the synchronous agreement sequence to running an asynchronous agreement sequence of the instance of the Byzantine agreement protocol on the proposed value, the running of the asynchronous agreement sequence comprising:
instantiating a wave comprising a plurality of concurrently executing views with a different leader for each view; and
when a predetermined number of executing views have completed:
electing a new leader from among the plurality of computing systems; and
exchanging a commit state of the new leader among the plurality of computing systems.