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
0
votes
1 answer

How a typical cluster of five servers can tolerate the failure of any two servers?

I am reading Raft-extended paper and above statement was there. Also I found a statement in the web saying failures of f servers can be tolerated if there were 2*f+1 servers. It's obvious to have another two servers where f=1. Is there an inductive…
Amila Senadheera
  • 12,229
  • 15
  • 27
  • 43
0
votes
0 answers

Failed to persist etcd/raft data: input/output error

I'm running a Hyperledger Fabric 1.4.1 using etcd/raft and I'm running on this error on the orderers of the network whenever I send a transaction to the orderer. We have observed this 12 times in a period of 9 days. What might be the causes of…
Diestrin
  • 294
  • 1
  • 4
  • 11
0
votes
2 answers

Orderer not found error while sending transaction at high rate in Hyperledger Fabric

I have a Hyperledger configured with 1 Org, 2 Peers, 5 Orderers (Raft cluster). The network has one channel with a simple chaincode. While sending transactions to the network using Hyperledger Caliper (with upto 7 clients), It works fine for a lower…
Manoj P R
  • 113
  • 6
0
votes
1 answer

Public transactions in quorum stuck in pending in transaction pool

I followed Quorum's docs and have created a 2 node network using the raft-consensus. In the genesis block i had pre-allocated funds to one of the accounts. Now I am trying to do a public transaction of some ethers to the other node. However the…
0
votes
1 answer

How to fix "Failed creating puller config from bootstrap block: unable to decode TLS certificate PEM" in HLF with Raft Cluster

I am trying to set up a Hyperledger Fabric network with the orderer as Raft (3 nodes in the cluster). I am using Kubernetes with Helm in Cloud. Everything works fine when it is a single node Raft set up. However, for a multi-node setup, I am…
Manoj P R
  • 113
  • 6
0
votes
2 answers

What is "mult-raft" in TiKV?

I came across this intersting database the other day, and have read some doc on its offical site, I have some questions regarding Raft Group in TiKV (here), Suppose that we have a cluster which has like 100 nodes, and the replication factor is 3,…
gfytd
  • 1,747
  • 2
  • 24
  • 47
0
votes
0 answers

Error in configuring and operating FABRIC Raft

I tried to start the network with RAFT following the BYFN example but I'm stuck in a problem related to signcert certificate that miss from the crypto-config folder after the cryptogen tool has been executed. I follow the following steps: First,…
0
votes
1 answer

Are messages dropped on RAFT?

I'm reading about raft, but I got a bit confused when it comes to consensus after a network partition. So, considering a cluster of 2 nodes, 1 Leader, 1 Follower. Before partitioning, there where X messages written, successfully replicated, and then…
Marcelo Boeira
  • 860
  • 8
  • 22
0
votes
1 answer

how to handle the saving failure after raft committed

when using raft, after log entries commited, we should write the data which is proposed by a node into our storage. what if one of node write failed. let's say the disk got bad. should the failure node terminate itself? the proces like the…
xren
  • 1,381
  • 5
  • 14
  • 29
0
votes
1 answer

How to add a new peer in the existing quorum network without using geth console?

I am trying to test the addition of new node in the existing quorum network. Is there any other way to do it without going to geth console and executing admin.addPeer(). Is there any API present where I can call and add the new peer so that it can…
Queen
  • 81
  • 5
0
votes
1 answer

How to safely remove history log in raft when all nodes log entries have been committed

Recently, I'm using the RAFT to build a distributed system, the realization of a simple function is to replicate log entry to each server to keep the data consistency, so my question is how to safely remove history log in RAFT when all nodes log…
Alan WU
  • 3
  • 1
0
votes
1 answer

Does this cause a real problem when I adopt the Raft's "never commits log entries from previous terms by counting replicas" rule in this situation?

I am currently implementing the Raft consensus algorithm myself, and I meet with the following problem. Consider there are 4 nodes(A, B, C and D), so a log entry can be committed with more than 2 votes. Now we start the cluster and have Leader A…
calvin
  • 2,125
  • 2
  • 21
  • 38
0
votes
1 answer

Raft algorithm ,prevent term increase

In the Raft algorithm, the term is always increasing. Is there any good way to solve this problem and prevent the term from reaching the limit in the future? Because I use a term of type tinyint and I don't want to modify the type, there will be a…
faker
  • 309
  • 2
  • 14
0
votes
1 answer

Why or why not use RequestVote RPC as heartbeat in Raft implementation?

As introduced in the paper, we use empty AppendEntries RPC for heartbeat. Then how about the RequestVote RPC? When FOLLOWER or CANDIDATE receives RequestVote RPC call, is it suppose to reset the election timeout as well? Why or why not to do so? One…
0
votes
1 answer

How the leader is notified about the change in cluster configuration in RAFT?

In the raft paper it is mentioned that cluster configurations are stored and communicated using special entries in the replicated log. [1] What does special entries mean here? Does each server have information in their entries about total number of…
Smita
  • 103
  • 7