diff options
| author | Chris Lu <chris.lu@gmail.com> | 2018-07-27 23:09:55 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2018-07-27 23:09:55 -0700 |
| commit | a12c7b86b0ca7ebd35f8763ebc89c675a49f8c59 (patch) | |
| tree | 9dc178cc45dbc03ffce8b15a7a39fbe37b3b1e95 /weed/topology/data_node.go | |
| parent | f82ac793b4db7dfcca3d69a5a9c7d0bb3e20d9ac (diff) | |
| download | seaweedfs-a12c7b86b0ca7ebd35f8763ebc89c675a49f8c59.tar.xz seaweedfs-a12c7b86b0ca7ebd35f8763ebc89c675a49f8c59.zip | |
broadcast messages of new and deleted volumes
Diffstat (limited to 'weed/topology/data_node.go')
| -rw-r--r-- | weed/topology/data_node.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/weed/topology/data_node.go b/weed/topology/data_node.go index 0ef8ae14e..6ee9a8a03 100644 --- a/weed/topology/data_node.go +++ b/weed/topology/data_node.go @@ -32,7 +32,7 @@ func (dn *DataNode) String() string { return fmt.Sprintf("Node:%s, volumes:%v, Ip:%s, Port:%d, PublicUrl:%s", dn.NodeImpl.String(), dn.volumes, dn.Ip, dn.Port, dn.PublicUrl) } -func (dn *DataNode) AddOrUpdateVolume(v storage.VolumeInfo) { +func (dn *DataNode) AddOrUpdateVolume(v storage.VolumeInfo) (isNew bool) { dn.Lock() defer dn.Unlock() if _, ok := dn.volumes[v.Id]; !ok { @@ -42,12 +42,14 @@ func (dn *DataNode) AddOrUpdateVolume(v storage.VolumeInfo) { dn.UpAdjustActiveVolumeCountDelta(1) } dn.UpAdjustMaxVolumeId(v.Id) + isNew = true } else { dn.volumes[v.Id] = v } + return } -func (dn *DataNode) UpdateVolumes(actualVolumes []storage.VolumeInfo) (deletedVolumes []storage.VolumeInfo) { +func (dn *DataNode) UpdateVolumes(actualVolumes []storage.VolumeInfo) (newVolumes, deletedVolumes []storage.VolumeInfo) { actualVolumeMap := make(map[storage.VolumeId]storage.VolumeInfo) for _, v := range actualVolumes { actualVolumeMap[v.Id] = v @@ -64,7 +66,10 @@ func (dn *DataNode) UpdateVolumes(actualVolumes []storage.VolumeInfo) (deletedVo } dn.Unlock() for _, v := range actualVolumes { - dn.AddOrUpdateVolume(v) + isNew := dn.AddOrUpdateVolume(v) + if isNew { + newVolumes = append(newVolumes, v) + } } return } |
