diff options
| author | chrislu <chris.lu@gmail.com> | 2024-10-10 10:00:30 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-10-10 10:00:30 -0700 |
| commit | 35fd1e1c9af62df7ca50324a0db2983ac4af4176 (patch) | |
| tree | dd0be4f5fb6799ec522094a82e37daf91525d015 /weed/topology/disk.go | |
| parent | b28b1a34025a2f2ed80883e245250d00783bfea7 (diff) | |
| download | seaweedfs-35fd1e1c9af62df7ca50324a0db2983ac4af4176.tar.xz seaweedfs-35fd1e1c9af62df7ca50324a0db2983ac4af4176.zip | |
optimize memory usage for large number of volumes
1. unwrap the map to avoid extra map object creation
2. fix ec shard counting in UpdateEcShards
Diffstat (limited to 'weed/topology/disk.go')
| -rw-r--r-- | weed/topology/disk.go | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/weed/topology/disk.go b/weed/topology/disk.go index 4597bfc29..6d789e34b 100644 --- a/weed/topology/disk.go +++ b/weed/topology/disk.go @@ -152,8 +152,7 @@ func (d *Disk) AddOrUpdateVolume(v storage.VolumeInfo) (isNew, isChanged bool) { } func (d *Disk) doAddOrUpdateVolume(v storage.VolumeInfo) (isNew, isChanged bool) { - deltaDiskUsages := newDiskUsages() - deltaDiskUsage := deltaDiskUsages.getOrCreateDisk(types.ToDiskType(v.DiskType)) + deltaDiskUsage := &DiskUsageCounts{} if oldV, ok := d.volumes[v.Id]; !ok { d.volumes[v.Id] = v deltaDiskUsage.volumeCount = 1 @@ -164,7 +163,7 @@ func (d *Disk) doAddOrUpdateVolume(v storage.VolumeInfo) (isNew, isChanged bool) deltaDiskUsage.activeVolumeCount = 1 } d.UpAdjustMaxVolumeId(v.Id) - d.UpAdjustDiskUsageDelta(deltaDiskUsages) + d.UpAdjustDiskUsageDelta(types.ToDiskType(v.DiskType), deltaDiskUsage) isNew = true } else { if oldV.IsRemote() != v.IsRemote() { @@ -174,7 +173,7 @@ func (d *Disk) doAddOrUpdateVolume(v storage.VolumeInfo) (isNew, isChanged bool) if oldV.IsRemote() { deltaDiskUsage.remoteVolumeCount = -1 } - d.UpAdjustDiskUsageDelta(deltaDiskUsages) + d.UpAdjustDiskUsageDelta(types.ToDiskType(v.DiskType), deltaDiskUsage) } isChanged = d.volumes[v.Id].ReadOnly != v.ReadOnly d.volumes[v.Id] = v |
