aboutsummaryrefslogtreecommitdiff
path: root/weed/shell/command_volume_balance.go
diff options
context:
space:
mode:
authorjustin <leyou240@live.cn>2022-04-18 10:35:43 +0800
committerjustin <leyou240@live.cn>2022-04-18 10:35:43 +0800
commit3551ca2fcf423464afb2db4b5792c22ec94c2bfd (patch)
treeee1f372e32fb03d93aeb0825ec0f068ef1fce161 /weed/shell/command_volume_balance.go
parentc6ec5269f4b34d79ab8e13050623501b8befda32 (diff)
downloadseaweedfs-3551ca2fcf423464afb2db4b5792c22ec94c2bfd.tar.xz
seaweedfs-3551ca2fcf423464afb2db4b5792c22ec94c2bfd.zip
enhancement: replace sort.Slice with slices.SortFunc to reduce reflection
Diffstat (limited to 'weed/shell/command_volume_balance.go')
-rw-r--r--weed/shell/command_volume_balance.go15
1 files changed, 7 insertions, 8 deletions
diff --git a/weed/shell/command_volume_balance.go b/weed/shell/command_volume_balance.go
index 7a983de1a..b01d348c5 100644
--- a/weed/shell/command_volume_balance.go
+++ b/weed/shell/command_volume_balance.go
@@ -6,9 +6,9 @@ import (
"github.com/chrislusf/seaweedfs/weed/pb"
"github.com/chrislusf/seaweedfs/weed/storage/super_block"
"github.com/chrislusf/seaweedfs/weed/storage/types"
+ "golang.org/x/exp/slices"
"io"
"os"
- "sort"
"time"
"github.com/chrislusf/seaweedfs/weed/pb/master_pb"
@@ -224,14 +224,14 @@ func (n *Node) selectVolumes(fn func(v *master_pb.VolumeInformationMessage) bool
}
func sortWritableVolumes(volumes []*master_pb.VolumeInformationMessage) {
- sort.Slice(volumes, func(i, j int) bool {
- return volumes[i].Size < volumes[j].Size
+ slices.SortFunc(volumes, func(a, b *master_pb.VolumeInformationMessage) bool {
+ return a.Size < b.Size
})
}
func sortReadOnlyVolumes(volumes []*master_pb.VolumeInformationMessage) {
- sort.Slice(volumes, func(i, j int) bool {
- return volumes[i].Id < volumes[j].Id
+ slices.SortFunc(volumes, func(a, b *master_pb.VolumeInformationMessage) bool {
+ return a.Id < b.Id
})
}
@@ -255,10 +255,9 @@ func balanceSelectedVolume(commandEnv *CommandEnv, diskType types.DiskType, volu
for hasMoved {
hasMoved = false
- sort.Slice(nodesWithCapacity, func(i, j int) bool {
- return nodesWithCapacity[i].localVolumeRatio(capacityFunc) < nodesWithCapacity[j].localVolumeRatio(capacityFunc)
+ slices.SortFunc(nodesWithCapacity, func(a, b *Node) bool {
+ return a.localVolumeRatio(capacityFunc) < b.localVolumeRatio(capacityFunc)
})
-
fullNode := nodesWithCapacity[len(nodesWithCapacity)-1]
var candidateVolumes []*master_pb.VolumeInformationMessage
for _, v := range fullNode.selectedVolumes {