diff options
| author | chrislu <chris.lu@gmail.com> | 2024-04-25 23:42:19 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-04-25 23:42:19 -0700 |
| commit | 8948fb51e363bf1011fb754cddd98038bce682cb (patch) | |
| tree | 1cf6d1d65f126a07ed685b39835f1611ec427161 /weed/shell/command_volume_fix_replication.go | |
| parent | 63036133ffa04efc95f8751435ef6b80711c6657 (diff) | |
| parent | abf01a0eb724aa82a5b2465c1dbde67bcc795727 (diff) | |
| download | seaweedfs-8948fb51e363bf1011fb754cddd98038bce682cb.tar.xz seaweedfs-8948fb51e363bf1011fb754cddd98038bce682cb.zip | |
Merge branch 'master' into mq-subscribe
Diffstat (limited to 'weed/shell/command_volume_fix_replication.go')
| -rw-r--r-- | weed/shell/command_volume_fix_replication.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/weed/shell/command_volume_fix_replication.go b/weed/shell/command_volume_fix_replication.go index b724f16f9..074931f40 100644 --- a/weed/shell/command_volume_fix_replication.go +++ b/weed/shell/command_volume_fix_replication.go @@ -4,16 +4,17 @@ import ( "context" "flag" "fmt" + "io" + "path/filepath" + "strconv" + "time" + "github.com/seaweedfs/seaweedfs/weed/pb" "github.com/seaweedfs/seaweedfs/weed/storage/needle" "github.com/seaweedfs/seaweedfs/weed/storage/needle_map" "github.com/seaweedfs/seaweedfs/weed/storage/types" "golang.org/x/exp/slices" "google.golang.org/grpc" - "io" - "path/filepath" - "strconv" - "time" "github.com/seaweedfs/seaweedfs/weed/operation" "github.com/seaweedfs/seaweedfs/weed/pb/master_pb" @@ -316,7 +317,7 @@ func (c *commandVolumeFixReplication) fixOneUnderReplicatedVolume(commandEnv *Co if !takeAction { // adjust volume count - dst.dataNode.DiskInfos[replica.info.DiskType].VolumeCount++ + addVolumeCount(dst.dataNode.DiskInfos[replica.info.DiskType], 1) break } @@ -350,7 +351,7 @@ func (c *commandVolumeFixReplication) fixOneUnderReplicatedVolume(commandEnv *Co } // adjust volume count - dst.dataNode.DiskInfos[replica.info.DiskType].VolumeCount++ + addVolumeCount(dst.dataNode.DiskInfos[replica.info.DiskType], 1) break } } @@ -361,6 +362,14 @@ func (c *commandVolumeFixReplication) fixOneUnderReplicatedVolume(commandEnv *Co return nil } +func addVolumeCount(info *master_pb.DiskInfo, count int) { + if info == nil { + return + } + info.VolumeCount += int64(count) + info.FreeVolumeCount -= int64(count) +} + func keepDataNodesSorted(dataNodes []location, diskType types.DiskType) { fn := capacityByFreeVolumeCount(diskType) slices.SortFunc(dataNodes, func(a, b location) int { |
