Consensus in Distributed System

The distributed consensus problem deals with reaching an agreement on a single data value among a group of process connected by an unreliable network. The processes must put forth their candidate values, communicate with one another, and agree on a single consensus value in presence of failures of some processes. Examples of applications of consensus include: Leader election / Mutable Exclusion Commit or Abort in distributed transactions Reaching agreement about which process has failed Clock phase synchronization Load balancing A visual diagram of this problem unfolds in the following. Each process pk with an input value uk runs a program to exchange its value. Finally the output of all non-faulty processes become identical. It is permissive that one or more processes may fail at any time, but the output v must be equal to the value of at least one process. ...

Aug 19, 2018 · 11 min · xgugeng

Consistency Models and Protocols in Distributed System

Data replication is a vital feature in distributed system, but brings in an inevitable price to be paid: consistency maintenance. The consistency model specifies a contract between programmer and system, wherein the system guarantees that if the programmer follows the rules, memory will be consistent and the results of reading, writing, or updating memory will be predictable. In Chinese, “consistency” often mixes up with “consensus” because of their similar translations. The consensus problem requires agreement among a number of processes for a single data value. Some of the processes may fail or be unreliable in other ways, so consensus protocols must be fault tolerant or resilient. This post focus on consistency only, enumerating various common types of consistency models and illuminating some consistency protocols. ...

Feb 9, 2018 · 7 min · xgugeng