aboutsummaryrefslogtreecommitdiff
path: root/weed/shell/command_volume_fix_replication.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-09-18 16:06:41 -0700
committerchrislu <chris.lu@gmail.com>2023-09-18 16:06:41 -0700
commit2e5aa06026750c99ea283181974d2ccfe5eb0468 (patch)
tree7360ecafeb9f8c81e46244b5da9b07e2b74f3fff /weed/shell/command_volume_fix_replication.go
parent4d414f54a224142f3f4d934f4af3b5dceb6fec6b (diff)
parenta04bd4d26fb355fff6447dd8e508fa54f3c6c180 (diff)
downloadseaweedfs-2e5aa06026750c99ea283181974d2ccfe5eb0468.tar.xz
seaweedfs-2e5aa06026750c99ea283181974d2ccfe5eb0468.zip
Merge branch 'master' of https://github.com/seaweedfs/seaweedfs
Diffstat (limited to 'weed/shell/command_volume_fix_replication.go')
-rw-r--r--weed/shell/command_volume_fix_replication.go14
1 files changed, 7 insertions, 7 deletions
diff --git a/weed/shell/command_volume_fix_replication.go b/weed/shell/command_volume_fix_replication.go
index 528dfbd2e..56f5f5532 100644
--- a/weed/shell/command_volume_fix_replication.go
+++ b/weed/shell/command_volume_fix_replication.go
@@ -328,8 +328,8 @@ func (c *commandVolumeFixReplication) fixOneUnderReplicatedVolume(commandEnv *Co
func keepDataNodesSorted(dataNodes []location, diskType types.DiskType) {
fn := capacityByFreeVolumeCount(diskType)
- slices.SortFunc(dataNodes, func(a, b location) bool {
- return fn(a.dataNode) > fn(b.dataNode)
+ slices.SortFunc(dataNodes, func(a, b location) int {
+ return int(fn(b.dataNode) - fn(a.dataNode))
})
}
@@ -514,17 +514,17 @@ func countReplicas(replicas []*VolumeReplica) (diffDc, diffRack, diffNode map[st
}
func pickOneReplicaToDelete(replicas []*VolumeReplica, replicaPlacement *super_block.ReplicaPlacement) *VolumeReplica {
- slices.SortFunc(replicas, func(a, b *VolumeReplica) bool {
+ slices.SortFunc(replicas, func(a, b *VolumeReplica) int {
if a.info.Size != b.info.Size {
- return a.info.Size < b.info.Size
+ return int(a.info.Size - b.info.Size)
}
if a.info.ModifiedAtSecond != b.info.ModifiedAtSecond {
- return a.info.ModifiedAtSecond < b.info.ModifiedAtSecond
+ return int(a.info.ModifiedAtSecond - b.info.ModifiedAtSecond)
}
if a.info.CompactRevision != b.info.CompactRevision {
- return a.info.CompactRevision < b.info.CompactRevision
+ return int(a.info.CompactRevision - b.info.CompactRevision)
}
- return false
+ return 0
})
return replicas[0]