s3: remove deleted collection during metrics reporting

fix https://github.com/seaweedfs/seaweedfs/issues/3453
This commit is contained in:
chrislu 2022-08-18 02:39:07 -07:00
parent 42c6e52513
commit 4d72a1ce6e

View file

@ -227,7 +227,7 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
var volumeMessages []*master_pb.VolumeInformationMessage
maxVolumeCounts := make(map[string]uint32)
var maxFileKey NeedleId
collectionVolumeSize := make(map[string]uint64)
collectionVolumeSize := make(map[string]int64)
collectionVolumeReadOnlyCount := make(map[string]map[string]uint8)
for _, location := range s.Locations {
var deleteVids []needle.VolumeId
@ -262,11 +262,11 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
collectionVolumeSize[v.Collection] = 0
}
if !shouldDeleteVolume {
collectionVolumeSize[v.Collection] += volumeMessage.Size
collectionVolumeSize[v.Collection] += int64(volumeMessage.Size)
} else {
collectionVolumeSize[v.Collection] -= volumeMessage.Size
if collectionVolumeSize[v.Collection] < 0 {
collectionVolumeSize[v.Collection] = 0
collectionVolumeSize[v.Collection] -= int64(volumeMessage.Size)
if collectionVolumeSize[v.Collection] <= 0 {
delete(collectionVolumeSize, v.Collection)
}
}