Questions tagged [raft]

A distributed consensus protocol designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance.

Click for source

Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems. We hope Raft will make consensus available to a wider audience, and that this wider audience will be able to develop a variety of higher quality consensus-based systems than are available today.

Consensus is a fundamental problem in fault-tolerant distributed systems. Consensus involves multiple servers agreeing on values. Once they reach a decision on a value, that decision is final. Typical consensus algorithms make progress when any majority of their servers are available; for example, a cluster of 5 servers can continue to operate even if 2 servers fail. If more servers fail, they stop making progress (but will never return an incorrect result).

Consensus typically arises in the context of replicated state machines, a general approach to building fault-tolerant systems. Each server has a state machine and a log. The state machine is the component that we want to make fault-tolerant, such as a hash table. It will appear to clients that they are interacting with a single, reliable state machine, even if a minority of the servers in the cluster fail. Each state machine takes as input commands from its log. In our hash table example, the log would include commands like set x to 3. A consensus algorithm is used to agree on the commands in the servers' logs. The consensus algorithm must ensure that if any state machine applies set x to 3 as the nth command, no other state machine will ever apply a different nth command. As a result, each state machine processes the same series of commands and thus produces the same series of results and arrives at the same series of states.

259 questions
6
votes
2 answers

go atomic Load and Store

func resetElectionTimeoutMS(newMin, newMax int) (int, int) { oldMin := atomic.LoadInt32(&MinimumElectionTimeoutMS) oldMax := atomic.LoadInt32(&maximumElectionTimeoutMS) atomic.StoreInt32(&MinimumElectionTimeoutMS, int32(newMin)) …
BufBills
  • 8,005
  • 12
  • 48
  • 90
5
votes
0 answers

Vault operator raft join getting : [ERROR] core: failed to join raft cluster: error="failed to join any raft leader node"

i try to install the 3 nodes using raft on k8s, i successfully init and unsealed vault-0 pod but when i try to from other pods (vault-1,vault-2) invoke: vault operator raft join: echo $CA_CERT -----BEGIN CERTIFICATE-----…
user63898
  • 29,839
  • 85
  • 272
  • 514
5
votes
1 answer

hyperledger fabric orderer for different networks

I have two different and separate networks. one has two organizations with two orderers and the second has three organizations with three orderers. if I want to have all five orderers in type=Raft for both networks, how should I config it? I know…
Pouya Shojaei
  • 307
  • 1
  • 10
5
votes
3 answers

How do replicas coming back online in PAXOS or RAFT catch up?

In consensus algorithms like for example PAXOS and RAFT, a value is proposed, and if a quorum agrees, it's written durably to the data store. What happens to the participants that were unavailable at the time of the quorum? How do they eventually…
Markus Jevring
  • 832
  • 1
  • 11
  • 17
5
votes
2 answers

In Raft when does a follower know an entry became committed? Can an out-of-date node can win a election?

In raft if a log replicated to majority, it is considered as committed in leader. Then leader send msg to follower to tell follower an entry become commit.If not, how and when follower know an entry become committed??? Another question,if an out of…
wang
  • 53
  • 5
5
votes
1 answer

Is the Raft consensus algorithm a byzantine fault-tolerant (bft) algorithm?

Is the raft consensus algorithm a byzantine fault tolerant algorithm? How many (percentage of) nodes are required to reach agreement/consensus?
Nathan Aw
  • 545
  • 5
  • 18
5
votes
1 answer

how raft follower rejoin after network disconnected?

I have a problem on raft. In paper "In Search of an Understandable Consensus Algorithm(Extended Version)" it says: To begin an election, a follower increments its current term and transitions to candidate state. (in section 5.2) and it also…
loin.liao
  • 159
  • 1
  • 5
5
votes
0 answers

RabbitMQ - parallel processing with strict ordering guarantees

In HappyFunPizzaCorp we have a POS system which generates two events: new_order event and payment event. Both events contain a pizza order_id key for cross referencing. Both events are sent to an exchange TheExchange. new_order events are always…
Nick Hristov
  • 905
  • 1
  • 8
  • 17
4
votes
1 answer

How do raft nodes learn about peers?

I just finished the raft paper and am beginning work on an implementation. However, I realized I am a bit confused on one crucial detail. How do raft nodes “know” about their peers? I didn’t see any mention of this in the paper so I assume it is…
mlz7
  • 2,067
  • 3
  • 27
  • 51
4
votes
2 answers

Does etcd store its key-value data directly in the Raft log?

I know that etcd uses the Raft protocol to achieve consensus among multiple nodes. Raft is usually presented as storing data as key-value pairs in the replicated log; does etcd store its key-value data directly in that Raft log, or is there some…
DylanSp
  • 1,379
  • 13
  • 27
4
votes
1 answer

Can etcd detect problems and elect leaders for other clusters?

To my knowledge, etcd uses Raft as a consensus and leader selection algorithm to maintain a leader that is in charge of keeping the ensemble of etcd nodes in sync with data changes within the etcd cluster. Among other things, this allows etcd to…
Josh
  • 11,979
  • 17
  • 60
  • 96
4
votes
2 answers

How to add a new Orderer Organization to existing Hyperledger Fabric network

I am trying to add a new Orderer Organization to RAFT based existing ordering service. I am using the first-network from fabric-samples as the base network. While generating crypto-material, I have modified to generate crypto-material for 1 more…
Chintan Rajvir
  • 689
  • 6
  • 20
4
votes
2 answers

Confusion about raft algorithm

In the paper 《 In Search of an Understandable Consensus Algorithm 》, Figure 8 shows a problem in (d) and (e) that some old logs may be overwritten and never come back. In section 5.4.2, it says “To eliminate problems like the one in Figure 8, Raft…
tyChen
  • 1,404
  • 8
  • 27
4
votes
1 answer

Hyperledger Fabric: Add Orderer in running raft network

I want to add a new orderer node in a running hyperledger-fabric network. I've used etcdraft as consensus between the orderers. I've followed step by step process of this accepted answer. In step #15, it is mentioned that, I've to fetch the latest…
4
votes
1 answer

Can we migrate from Kafka(1.4.0) to RAFT(1.4.3) if channel capabilities are disabled?

While migrating from kafka(Fabric 1.4.0) to RAFT(fabric 1.4.3), in first step I am changing the state of network form NORMAL to MAINTENANCE, after signing the block, when I send to the orderer, getting the following error. Error: got unexpected…
PAVAN
  • 771
  • 4
  • 14
1
2
3
17 18