aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/server/raft_server.go13
1 files changed, 3 insertions, 10 deletions
diff --git a/weed/server/raft_server.go b/weed/server/raft_server.go
index c332da38e..ca1792ac6 100644
--- a/weed/server/raft_server.go
+++ b/weed/server/raft_server.go
@@ -3,6 +3,7 @@ package weed_server
import (
"encoding/json"
"io/ioutil"
+ "math/rand"
"os"
"path"
"reflect"
@@ -70,8 +71,8 @@ func NewRaftServer(r *mux.Router, peers []string, httpAddr string, dataDir strin
for _, peer := range s.peers {
s.raftServer.AddPeer(peer, "http://"+peer)
}
-
- if s.raftServer.IsLogEmpty() && isTheFirstOne(httpAddr, s.peers) {
+ time.Sleep(time.Duration(1000+rand.Int31n(3000)) * time.Millisecond)
+ if s.raftServer.IsLogEmpty() {
// Initialize the server by joining itself.
glog.V(0).Infoln("Initializing new cluster")
@@ -128,11 +129,3 @@ func isPeersChanged(dir string, self string, peers []string) (oldPeers []string,
return oldPeers, !reflect.DeepEqual(peers, oldPeers)
}
-
-func isTheFirstOne(self string, peers []string) bool {
- sort.Strings(peers)
- if len(peers)<=0{
- return true
- }
- return self == peers[0]
-}