Comments (3)
Dug into this a little more, the randomization for the election timeout (and other timeouts) is via math/rand, which uses a deterministic seed (each run of the process will see the same sequence of random values), so the timeout is randomized, but the randomized values are moving in lock step in each node.
Seems like this should create a new source that's seeded by something derived from the node, like the listen address to make each nodes randomization different. [If that seems reasonable, i'd be happy to code it up and submit a PR]
from raft.
@superfell We should maybe just pull in some real entropy (crypto/rand) and seed math/rand as a simpler approach.
from raft.
That'll work too, i didn't know if anything was relying on it being deterministic (perhaps tests)
from raft.
Related Issues (20)
- raft.GetConfiguration() - runtime error: invalid memory address or nil pointer dereference HOT 5
- How to bootstrap a raft cluster with a fixed node setting? HOT 15
- Using node heartbeats in business logic HOT 1
- New node not receiving raft.Configuration after leader calls AddVoter HOT 3
- Cluster unable to elect a leader after restarting a follower and stopping the leader while the follower is down HOT 2
- How to costumize the Logger Name HOT 2
- Is there a way to make Snapshotting optional? HOT 2
- Your repo doesn't have documentation!
- Enhancement: persist commit index in LogStore to accelerate recovery HOT 4
- Test failed on latest branch: TestRaft_LeadershipTransferToBehindServer HOT 1
- Why the subsequent nodes not join the cluster HOT 2
- Why after calling RemoveServer for a node does it still continue to heartbeat it? HOT 2
- getting notified on losing follower heartbeat HOT 5
- Push to the notify channel and shutdown sign arriving,it is pick one of two but actually nobody know which one HOT 5
- Panic split-brain in appendEntries call HOT 2
- How to observe on follower connecting to cluster ? HOT 1
- How to bootstrap a raft cluster with a single node? HOT 2
- Use pebbledb as raft logstore & stablestore, restart raft cluster nodes all pebbledb data will be lost? HOT 13
- Ability for peers to denote others/themselves as too laggy to accept requests HOT 8
- Inconsistent Raft Latency on Different Infrastructures HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raft.