Data replication protocol with steady state data distribution and quorum formation
First Claim
1. A method of steady state data distribution between a client application, a leader machine, and a plurality of replica machines, the method comprising:
- receiving by the leader machine an operation request message specifying an operation and associated data from the client application;
distributing by the leader machine a prepare message to each of the plurality of replica machines collectively called a quorum, wherein the prepare message comprises the operation, the associated data, a quorum version number identifying the quorum, and an operation version number identifying the operation;
recording in a log by each of the replica machines the operation, the associated data, the quorum version number and the operation version number from the prepare message;
sending by each of the replica machines a first acknowledgement message to the leader machine upon receiving the prepare message, wherein the first acknowledgement message comprises the quorum version number and the operation version number;
sending by the leader machine a commit command message to the replica machines upon receiving the first acknowledgement messages from a majority of the replica machines in the quorum;
executing by the replica machines the operation specified in the prepare message upon receiving the commit command message from the leader machine; and
removing by each of the replica machines from its log the operation and the associated data provided in the prepare message upon executing the operation.
13 Assignments
0 Petitions
Accused Products
Abstract
Steady state data distribution is provided between a client application, a leader machine, and a plurality of replica machines. The distribution comprises the leader machine receiving an operation request from the client application, the leader machine sending the prepare message to each of the plurality of replica machines, the replica machines recording in their logs information on the operation, the replica machines sending acknowledgement messages to the leader machine, and the leader machine sending commit command messages to the replica machines. A new quorum of the replica machines is created by using log information. Replica machines that become part of the new quorum are updated in an efficient manner.
13 Citations
24 Claims
-
1. A method of steady state data distribution between a client application, a leader machine, and a plurality of replica machines, the method comprising:
-
receiving by the leader machine an operation request message specifying an operation and associated data from the client application; distributing by the leader machine a prepare message to each of the plurality of replica machines collectively called a quorum, wherein the prepare message comprises the operation, the associated data, a quorum version number identifying the quorum, and an operation version number identifying the operation; recording in a log by each of the replica machines the operation, the associated data, the quorum version number and the operation version number from the prepare message; sending by each of the replica machines a first acknowledgement message to the leader machine upon receiving the prepare message, wherein the first acknowledgement message comprises the quorum version number and the operation version number; sending by the leader machine a commit command message to the replica machines upon receiving the first acknowledgement messages from a majority of the replica machines in the quorum; executing by the replica machines the operation specified in the prepare message upon receiving the commit command message from the leader machine; and removing by each of the replica machines from its log the operation and the associated data provided in the prepare message upon executing the operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of forming a quorum of replica machines connected to a leader machine that is in communication with a client application, the method comprising:
-
sending by the leader machine a solicit message to each of the replica machines; sending by each of the replica machines a reply message comprising a log to the leader machine upon receiving the solicit message, the log comprising a quorum commit version number identifying the quorum each of the replica machines has committed to; identifying by the leader machine a most recent log from the received logs, the most recent log identified by identifying a log with the highest quorum commit version number from the received logs; forming a new quorum with the replica machines based on the most recent log; and updating the replica machines in the quorum to have the most recent log. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification