aboutsummaryrefslogtreecommitdiff
path: root/weed/server/master_server.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2018-07-28 21:03:29 -0700
committerGitHub <noreply@github.com>2018-07-28 21:03:29 -0700
commit452bd0b01393e53e958fb9825bf1f27e6b3522df (patch)
treee1a61e592118f9696b7f51501d3b3fd0f6c3eeb5 /weed/server/master_server.go
parent97603d6e176dd2b9f2aebd9f6122a8c60481463a (diff)
parentd3205a007071f26587affb416f71b5c63854b863 (diff)
downloadseaweedfs-452bd0b01393e53e958fb9825bf1f27e6b3522df.tar.xz
seaweedfs-452bd0b01393e53e958fb9825bf1f27e6b3522df.zip
Merge pull request #702 from chrislusf/add_topo_listener
Add volume id location change listener
Diffstat (limited to 'weed/server/master_server.go')
-rw-r--r--weed/server/master_server.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/weed/server/master_server.go b/weed/server/master_server.go
index efa0ae104..07a398ead 100644
--- a/weed/server/master_server.go
+++ b/weed/server/master_server.go
@@ -9,6 +9,7 @@ import (
"github.com/chrislusf/raft"
"github.com/chrislusf/seaweedfs/weed/glog"
+ "github.com/chrislusf/seaweedfs/weed/pb/master_pb"
"github.com/chrislusf/seaweedfs/weed/security"
"github.com/chrislusf/seaweedfs/weed/sequence"
"github.com/chrislusf/seaweedfs/weed/topology"
@@ -31,6 +32,10 @@ type MasterServer struct {
vgLock sync.Mutex
bounedLeaderChan chan int
+
+ // notifying clients
+ clientChansLock sync.RWMutex
+ clientChans map[string]chan *master_pb.VolumeLocation
}
func NewMasterServer(r *mux.Router, port int, metaFolder string,
@@ -54,6 +59,7 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
pulseSeconds: pulseSeconds,
defaultReplicaPlacement: defaultReplicaPlacement,
garbageThreshold: garbageThreshold,
+ clientChans: make(map[string]chan *master_pb.VolumeLocation),
}
ms.bounedLeaderChan = make(chan int, 16)
seq := sequence.NewMemorySequencer()