Service Fabric (continued)
Part 1 introduced the
Service Fabric. This article continues the discussion with a comparison of the
messaging protocols:
Service Fabric is not like Kubernetes which is a
heavily centralized system relying on an API server, multiple Kubelets, a
central etcd cluster repository and heartbeats collected every period. Service
Fabric avoids this with a decentralized ring and failure detection. It is
motivated by the adage that distributed consensus is at the heart of numerous
co-ordination problems, but it has a trivially simple solution if there is a
reliable failure detection service. Service Fabric does not use a distributed
consensus protocol like Raft or Paxos or a centralized store for cluster state.
Instead, it proposes a Federation subsystem which answers the most important
question on membership which is whether a specific node is part of the system.
The nodes are organized in rings, and the heartbeats are only sent to a small
subset of nodes called the neighborhood. The arbitration procedure involves
more nodes besides the monitor but it is only executed on missed heartbeats. A
quorum of privileged nodes in an arbitration group helps resolve the possible
failure detection conflicts, isolate appropriate nodes and maintain a
consistent view of the ring.
Kubernetes requires distributed consensus, but
Service Fabric relies on its ring. Distributed consensus algorithms have
evolved into many forms but two primarily dominate the market – Paxos and Raft.
Both take a similar approach differing only in their approach for leader
election. Raft only allows servers with up-to-date logs to become leaders,
whereas Paxos allows any server to be leader if it then updates its logs to
ensure that it remains up-to-date. Raft is more efficient since it does not
involve log entries to be exchanged during leader elections.
Some of the other differences can be compared
along the following dimensions:
1.
How does it ensure that each term has at most one leader?
a.
Paxos: A server s can only be candidate in a term t if t mod n = s.
There will be only one candidate per term so there will be only one leader per
term.
b.
Raft: A follower can become a candidate in any term. Each follower
will only vote for one candidate per term, so only one candidate can get a
majority of votes and become the leader.
2.
How does it ensure that a new leader’s log contains all committed
entries?
a.
Paxos: Each RequestVote reply includes the followers’s log entries.
Once a candidate has received RequestVote responses from a majority of
followers, it adds the entries with the highest term to its log.
b.
Raft: A vote is granted only if the candidate’s log is at least as
up-to-date as the followers’. This ensures that a candidate only becomes a
leader if it’s log is at least as up-to-date as a majority of its followers.
3.
How does it ensure that the leader safely commits log entries from
previous terms?
a.
Paxos: Log entries from the previous terms are added to the leader’s
log with the leader’s terms. The leader then replicates the log entries as if
they were from the leader’s terms.
b.
Raft: The leader replicates the log entries to the other servers
without changing the term. The leader cannot consider those entries committed
until it has replicated a subsequent log entry from its own term.
Raft algorithm was proposed to address the
long-standing issues with understandability of the widely studied Paxos
algorithm. It has a clear abstraction and presentation and can be a simplified
version of the original Paxos algorithm. Specifically, Paxos divides terms
between servers whereas Raft allows a follower to become a candidate in any
term, but followers will vote for only one candidate per term. Paxos followers
will vote for any candidate, whereas Raft followers will only vote for a candidate
if the candidate’s log is at least as up to date. If a leader has uncommitted
log entries from a previous term, Paxos will replicate them in the current term
whereas Raft will replicate them in their original term. Raft’s leader election
is therefore lightweight when compared to Paxos.
No comments:
Post a Comment