aboutsummaryrefslogtreecommitdiff
path: root/weed/cluster
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-06-19 23:51:04 -0700
committerchrislu <chris.lu@gmail.com>2023-06-19 23:51:04 -0700
commit14a19170e2f11866c6b590444f771bd60deb8b54 (patch)
tree03116bc82fbbbfc4401d07e46d3c80c7856812c3 /weed/cluster
parent84ced2abf56d1e1797953f6be9cc99604868baaa (diff)
downloadseaweedfs-14a19170e2f11866c6b590444f771bd60deb8b54.tar.xz
seaweedfs-14a19170e2f11866c6b590444f771bd60deb8b54.zip
refactor
Diffstat (limited to 'weed/cluster')
-rw-r--r--weed/cluster/cluster.go43
-rw-r--r--weed/cluster/group_members.go46
2 files changed, 47 insertions, 42 deletions
diff --git a/weed/cluster/cluster.go b/weed/cluster/cluster.go
index e79000fbe..2e753812c 100644
--- a/weed/cluster/cluster.go
+++ b/weed/cluster/cluster.go
@@ -18,9 +18,6 @@ type FilerGroupName string
type DataCenter string
type Rack string
-type Leaders struct {
- leaders [3]pb.ServerAddress
-}
type ClusterNode struct {
Address pb.ServerAddress
Version string
@@ -29,9 +26,7 @@ type ClusterNode struct {
DataCenter DataCenter
Rack Rack
}
-type GroupMembers struct {
- members map[pb.ServerAddress]*ClusterNode
-}
+
type ClusterNodeGroups struct {
groupMembers map[FilerGroupName]*GroupMembers
sync.RWMutex
@@ -57,42 +52,6 @@ func (g *ClusterNodeGroups) getGroupMembers(filerGroup FilerGroupName, createIfN
return members
}
-func (m *GroupMembers) addMember(dataCenter DataCenter, rack Rack, address pb.ServerAddress, version string) *ClusterNode {
- if existingNode, found := m.members[address]; found {
- existingNode.counter++
- return nil
- }
- t := &ClusterNode{
- Address: address,
- Version: version,
- counter: 1,
- CreatedTs: time.Now(),
- DataCenter: dataCenter,
- Rack: rack,
- }
- m.members[address] = t
- return t
-}
-func (m *GroupMembers) removeMember(address pb.ServerAddress) bool {
- if existingNode, found := m.members[address]; !found {
- return false
- } else {
- existingNode.counter--
- if existingNode.counter <= 0 {
- delete(m.members, address)
- return true
- }
- }
- return false
-}
-
-func (m *GroupMembers) GetMembers() (addresses []pb.ServerAddress) {
- for k := range m.members {
- addresses = append(addresses, k)
- }
- return
-}
-
func (g *ClusterNodeGroups) AddClusterNode(filerGroup FilerGroupName, nodeType string, dataCenter DataCenter, rack Rack, address pb.ServerAddress, version string) []*master_pb.KeepConnectedResponse {
g.Lock()
defer g.Unlock()
diff --git a/weed/cluster/group_members.go b/weed/cluster/group_members.go
new file mode 100644
index 000000000..01b97feae
--- /dev/null
+++ b/weed/cluster/group_members.go
@@ -0,0 +1,46 @@
+package cluster
+
+import (
+ "github.com/seaweedfs/seaweedfs/weed/pb"
+ "time"
+)
+
+type GroupMembers struct {
+ members map[pb.ServerAddress]*ClusterNode
+}
+
+func (m *GroupMembers) addMember(dataCenter DataCenter, rack Rack, address pb.ServerAddress, version string) *ClusterNode {
+ if existingNode, found := m.members[address]; found {
+ existingNode.counter++
+ return nil
+ }
+ t := &ClusterNode{
+ Address: address,
+ Version: version,
+ counter: 1,
+ CreatedTs: time.Now(),
+ DataCenter: dataCenter,
+ Rack: rack,
+ }
+ m.members[address] = t
+ return t
+}
+func (m *GroupMembers) removeMember(address pb.ServerAddress) bool {
+ if existingNode, found := m.members[address]; !found {
+ return false
+ } else {
+ existingNode.counter--
+ if existingNode.counter <= 0 {
+ delete(m.members, address)
+ return true
+ }
+ }
+ return false
+}
+
+func (m *GroupMembers) GetMembers() (addresses []pb.ServerAddress) {
+ for k := range m.members {
+ addresses = append(addresses, k)
+ }
+ return
+}