aboutsummaryrefslogtreecommitdiff
path: root/weed/wdclient/masterclient.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2018-07-31 19:12:36 -0700
committerChris Lu <chris.lu@gmail.com>2018-07-31 19:12:36 -0700
commit44d8e359888e605b89d7ba01cb72263e1e10bf27 (patch)
tree4132c6500b88915513058a96623ba9f4d2e300ae /weed/wdclient/masterclient.go
parentd09606c65ba29f848b6e96b03285842e1808a194 (diff)
downloadseaweedfs-44d8e359888e605b89d7ba01cb72263e1e10bf27.tar.xz
seaweedfs-44d8e359888e605b89d7ba01cb72263e1e10bf27.zip
add listener for volumd id location for benchmark tool
Diffstat (limited to 'weed/wdclient/masterclient.go')
-rw-r--r--weed/wdclient/masterclient.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/weed/wdclient/masterclient.go b/weed/wdclient/masterclient.go
index 347901f1a..6b09e4a90 100644
--- a/weed/wdclient/masterclient.go
+++ b/weed/wdclient/masterclient.go
@@ -8,6 +8,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/master_pb"
"github.com/chrislusf/seaweedfs/weed/util"
+ "math/rand"
)
type MasterClient struct {
@@ -32,6 +33,12 @@ func (mc *MasterClient) GetMaster() string {
return mc.currentMaster
}
+func (mc *MasterClient) WaitUntilConnected() {
+ for mc.currentMaster == "" {
+ time.Sleep(time.Duration(rand.Int31n(200)) * time.Millisecond)
+ }
+}
+
func (mc *MasterClient) KeepConnectedToMaster() {
glog.V(0).Infof("%s bootstraps with masters %v", mc.name, mc.masters)
for {
@@ -50,9 +57,6 @@ func (mc *MasterClient) tryAllMasters() {
return err
}
- glog.V(0).Infof("Connected to %v", master)
- mc.currentMaster = master
-
if err = stream.Send(&master_pb.ClientListenRequest{Name: mc.name}); err != nil {
glog.V(0).Infof("failed to send to %s: %v", master, err)
return err
@@ -74,9 +78,17 @@ func (mc *MasterClient) tryAllMasters() {
for _, deletedVid := range volumeLocation.DeletedVids {
mc.deleteLocation(deletedVid, loc)
}
+
+ if mc.currentMaster == "" {
+ glog.V(0).Infof("Connected to %v", master)
+ mc.currentMaster = master
+ }
+
}
}
+
})
+
mc.currentMaster = ""
}
}