Failover mechanism in a distributed computing system
First Claim
1. A method performed by a computing system, comprising:
- receiving a data access request including a dataset from a client computing system at a distributed computing system, the distributed computing system including multiple computing servers hosting a region of data associated with the distributed computing system, the computing servers distributed across multiple clusters, wherein one of the computing servers is a leader server and a remaining of the computing servers are follower servers, and wherein some of the computing servers are active servers, active witness servers and shadow witness servers;
writing, by the leader server, the dataset to a log file at a data storage system associated with the leader server;
replicating, by the leader server, the log file to the follower servers, wherein the replicating includes;
replicating an in-memory store of the leader server and the log file to the active witness servers, the in-memory store including data from the log file, andreplicating the log file to the shadow witness servers; and
updating, by an active server of the active servers, a distributed data storage system associated with a first cluster of the clusters to which the leader server belongs with the dataset from the log file.
2 Assignments
0 Petitions
Accused Products
Abstract
The disclosure is directed to failover mechanisms in a distributed computing system. A region of data is managed by multiple region servers. One of the region servers is elected as a “leader” and the remaining are “followers.” The leader serves the read/write requests from a client. The leader writes the data received from the client into the in-memory store and a local write-ahead log (“WAL”), and synchronously replicates the WAL to the followers. A region server designated as an “active” region server synchronizes a distributed data store with the data from the WAL. Active witness followers apply the data from the WAL to their in-memory store while shadow witness followers do not. Different types of servers provide failover mechanisms with different characteristics. A leader is elected based on their associated ranks—higher the rank, higher the likelihood of electing itself as a leader.
-
Citations
19 Claims
-
1. A method performed by a computing system, comprising:
-
receiving a data access request including a dataset from a client computing system at a distributed computing system, the distributed computing system including multiple computing servers hosting a region of data associated with the distributed computing system, the computing servers distributed across multiple clusters, wherein one of the computing servers is a leader server and a remaining of the computing servers are follower servers, and wherein some of the computing servers are active servers, active witness servers and shadow witness servers; writing, by the leader server, the dataset to a log file at a data storage system associated with the leader server; replicating, by the leader server, the log file to the follower servers, wherein the replicating includes; replicating an in-memory store of the leader server and the log file to the active witness servers, the in-memory store including data from the log file, and replicating the log file to the shadow witness servers; and updating, by an active server of the active servers, a distributed data storage system associated with a first cluster of the clusters to which the leader server belongs with the dataset from the log file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable storage medium storing computer-executable instructions, comprising:
-
instructions for selecting one of multiple computing servers in a distributed computing system as a leader server, wherein the leader server is a computing server assigned to serve a read-write request from a client computing system, wherein a remaining of the computing servers are follower servers, and wherein the leader server replicates a log file associated with the leader server to the follower servers, the log file including a data set received from the client computing system; instructions for selecting one of the computing servers as an active server, wherein the active server is a computing server assigned to update a distributed data storage system with a log file associated with the active server; and instructions for selecting some of the computing servers as witness servers, the witness servers including (a) one or more active witness servers that include a replicated copy of the log file and an in-memory store of the leader server and (b) one or more shadow witness servers that include the replicated copy of the log file of the leader server. - View Dependent Claims (15, 16, 17)
-
-
18. A system, comprising:
-
a processor; a first module configured to select; one of multiple computing servers of a distributed computing system as a leader server and a remaining of the computing servers as follower servers, the leader server assigned to serve a data access request from a client computing system, one of the computing servers as an active server, some of the follower servers as active witness servers, the active witness servers including a replicated copy of a log file and an in-memory store of the leader server, and some of the follower servers as shadow witness servers, the shadow witness servers including the replicated copy of the log file of the leader server; a second module configured to cause the leader server to process the data access request received at the distributed computing from the client computing system, the data access request including a dataset; a third module configured to cause the leader server to write the dataset to the log file stored at a data storage system associated with the leader server; a fourth module configured to cause the leader server to replicate the log file and the in-memory store to the active witness servers, and replicate the log file to the shadow witness servers; and a fifth module configured to cause the active server to update a distributed data storage system associated with the active server with the dataset from the log file. - View Dependent Claims (19)
-
Specification