This is an automated email from the ASF dual-hosted git repository.
chia7712 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-core.git
The following commit(s) were added to refs/heads/master by this push:
new 6bc390a2 [YUNIKORN-2335] Use go standard library min and max functions
(#780)
6bc390a2 is described below
commit 6bc390a2d7be8e1de63fae321bbaeca34af349ea
Author: geordie <[email protected]>
AuthorDate: Thu Feb 1 01:08:42 2024 +0800
[YUNIKORN-2335] Use go standard library min and max functions (#780)
Closes: #780
Signed-off-by: Chia-Ping Tsai <[email protected]>
---
go.mod | 2 +-
pkg/common/resources/resources.go | 32 +++++++-------------------------
pkg/common/utils.go | 7 -------
pkg/common/utils_test.go | 7 -------
pkg/events/event_ringbuffer.go | 16 +---------------
pkg/log/logger.go | 4 +---
pkg/scheduler/objects/application.go | 5 +----
pkg/scheduler/objects/preemption.go | 17 +++++++----------
pkg/scheduler/objects/queue.go | 4 +---
9 files changed, 19 insertions(+), 75 deletions(-)
diff --git a/go.mod b/go.mod
index 6ba7d67a..0732d91c 100644
--- a/go.mod
+++ b/go.mod
@@ -19,7 +19,7 @@
module github.com/apache/yunikorn-core
-go 1.20
+go 1.21
require (
github.com/apache/yunikorn-scheduler-interface
v0.0.0-20231211235204-ec7bfad7d00e
diff --git a/pkg/common/resources/resources.go
b/pkg/common/resources/resources.go
index 26156100..9aacdbbb 100644
--- a/pkg/common/resources/resources.go
+++ b/pkg/common/resources/resources.go
@@ -450,9 +450,7 @@ func (r *Resource) fitIn(smaller *Resource, skipUndef bool)
bool {
if skipUndef && !ok {
continue
}
- if largerValue < 0 {
- largerValue = 0
- }
+ largerValue = max(0, largerValue)
if v > largerValue {
return false
}
@@ -774,22 +772,6 @@ func StrictlyGreaterThanZero(larger *Resource) bool {
return greater
}
-// Return the smallest quantity
-func MinQuantity(x, y Quantity) Quantity {
- if x < y {
- return x
- }
- return y
-}
-
-// Return the largest quantity
-func MaxQuantity(x, y Quantity) Quantity {
- if x > y {
- return x
- }
- return y
-}
-
// Returns a new resource with the smallest value for each quantity in the
resources
// If either resource passed in is nil a zero resource is returned
// If a resource type is missing from one of the Resource, it is considered 0
@@ -797,10 +779,10 @@ func ComponentWiseMin(left, right *Resource) *Resource {
out := NewResource()
if left != nil && right != nil {
for k, v := range left.Resources {
- out.Resources[k] = MinQuantity(v, right.Resources[k])
+ out.Resources[k] = min(v, right.Resources[k])
}
for k, v := range right.Resources {
- out.Resources[k] = MinQuantity(v, left.Resources[k])
+ out.Resources[k] = min(v, left.Resources[k])
}
}
return out
@@ -822,14 +804,14 @@ func ComponentWiseMinPermissive(left, right *Resource)
*Resource {
}
for k, v := range left.Resources {
if val, ok := right.Resources[k]; ok {
- out.Resources[k] = MinQuantity(v, val)
+ out.Resources[k] = min(v, val)
} else {
out.Resources[k] = v
}
}
for k, v := range right.Resources {
if val, ok := left.Resources[k]; ok {
- out.Resources[k] = MinQuantity(v, val)
+ out.Resources[k] = min(v, val)
} else {
out.Resources[k] = v
}
@@ -860,10 +842,10 @@ func ComponentWiseMax(left, right *Resource) *Resource {
out := NewResource()
if left != nil && right != nil {
for k, v := range left.Resources {
- out.Resources[k] = MaxQuantity(v, right.Resources[k])
+ out.Resources[k] = max(v, right.Resources[k])
}
for k, v := range right.Resources {
- out.Resources[k] = MaxQuantity(v, left.Resources[k])
+ out.Resources[k] = max(v, left.Resources[k])
}
}
return out
diff --git a/pkg/common/utils.go b/pkg/common/utils.go
index bb4bd330..51383001 100644
--- a/pkg/common/utils.go
+++ b/pkg/common/utils.go
@@ -238,13 +238,6 @@ func WaitForCondition(eval func() bool, interval
time.Duration, timeout time.Dur
}
}
-func Min(x, y uint64) uint64 {
- if x < y {
- return x
- }
- return y
-}
-
func GetConfigurationBool(configs map[string]string, key string, defaultValue
bool) bool {
value, ok := configs[key]
if !ok {
diff --git a/pkg/common/utils_test.go b/pkg/common/utils_test.go
index d97fe637..c286e8c4 100644
--- a/pkg/common/utils_test.go
+++ b/pkg/common/utils_test.go
@@ -267,13 +267,6 @@ func TestWaitFor(t *testing.T) {
}
}
-func TestMin(t *testing.T) {
- assert.DeepEqual(t, Min(uint64(1), uint64(2)), uint64(1))
- assert.DeepEqual(t, Min(uint64(2), uint64(1)), uint64(1))
- assert.Check(t, Min(uint64(2), uint64(1)) == uint64(1), true)
- assert.Check(t, Min(uint64(2), uint64(1)) == 1, false)
-}
-
func TestGetConfigurationBool(t *testing.T) {
testCases := []struct {
name string
diff --git a/pkg/events/event_ringbuffer.go b/pkg/events/event_ringbuffer.go
index 3ae95331..a4308645 100644
--- a/pkg/events/event_ringbuffer.go
+++ b/pkg/events/event_ringbuffer.go
@@ -142,15 +142,6 @@ func (e *eventRingBuffer) getEventsFromID(id uint64, count
uint64) ([]*si.EventR
}, nil), lowest, e.getLastEventID()
}
-// min a utility function to return the smallest value of two unsigned int
-func min(a, b uint64) uint64 {
- m := a
- if b < a {
- m = b
- }
- return m
-}
-
// GetLastEventID returns the value of the unique id counter.
// If the buffer is empty, it returns 0.
func (e *eventRingBuffer) GetLastEventID() uint64 {
@@ -242,12 +233,7 @@ func (e *eventRingBuffer) Resize(newSize uint64) {
initialSize := e.capacity
newEvents := make([]*si.EventRecord, newSize)
- var numEventsToCopy uint64
- if e.id-e.getLowestID() > newSize {
- numEventsToCopy = newSize
- } else {
- numEventsToCopy = e.id - e.getLowestID()
- }
+ numEventsToCopy := min(e.id-e.getLowestID(), newSize)
// Calculate the index from where to start copying (the oldest event)
startIndex := (e.head + e.capacity - numEventsToCopy) % e.capacity
diff --git a/pkg/log/logger.go b/pkg/log/logger.go
index e03556ba..5d9f861d 100644
--- a/pkg/log/logger.go
+++ b/pkg/log/logger.go
@@ -279,9 +279,7 @@ func initLoggingConfig(config map[string]string) {
// compute the finest log level necessary to allow all loggers to
succeed
minLevel := zapcore.InvalidLevel - 1
for _, v := range levelMap {
- if minLevel > v {
- minLevel = v
- }
+ minLevel = min(v, minLevel)
}
// create each configured logger and initialize the overall
configuration
diff --git a/pkg/scheduler/objects/application.go
b/pkg/scheduler/objects/application.go
index 1899ce62..8f1f49a5 100644
--- a/pkg/scheduler/objects/application.go
+++ b/pkg/scheduler/objects/application.go
@@ -1818,10 +1818,7 @@ func (sa *Application) updateAskMaxPriority() {
if v.GetPendingAskRepeat() == 0 {
continue
}
- p := v.GetPriority()
- if p > value {
- value = p
- }
+ value = max(value, v.GetPriority())
}
sa.askMaxPriority = value
sa.queue.UpdateApplicationPriority(sa.ApplicationID, value)
diff --git a/pkg/scheduler/objects/preemption.go
b/pkg/scheduler/objects/preemption.go
index 0e37845b..14919274 100644
--- a/pkg/scheduler/objects/preemption.go
+++ b/pkg/scheduler/objects/preemption.go
@@ -699,8 +699,8 @@ func (qps *QueuePreemptionSnapshot)
IsAtOrAboveGuaranteedResource() bool {
return false
}
guaranteed := qps.GetGuaranteedResource()
- max := qps.GetMaxResource()
- absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed, max)
+ maxResource := qps.GetMaxResource()
+ absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed,
maxResource)
used := resources.Sub(qps.AllocatedResource, qps.PreemptingResource)
// if we don't fit, we're clearly above
@@ -727,8 +727,8 @@ func (qps *QueuePreemptionSnapshot)
IsWithinGuaranteedResource() bool {
if qps.Leaf && guaranteed.IsEmpty() {
return false
}
- max := qps.GetMaxResource()
- absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed, max)
+ maxResource := qps.GetMaxResource()
+ absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed,
maxResource)
used := resources.Sub(qps.AllocatedResource, qps.PreemptingResource)
return absGuaranteed.FitIn(used)
}
@@ -742,8 +742,8 @@ func (qps *QueuePreemptionSnapshot)
GetRemainingGuaranteed() *resources.Resource
parentResult = resources.NewResource()
}
guaranteed := qps.GetGuaranteedResource()
- max := qps.GetMaxResource()
- absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed, max)
+ maxResource := qps.GetMaxResource()
+ absGuaranteed := resources.ComponentWiseMinPermissive(guaranteed,
maxResource)
used := resources.Sub(qps.AllocatedResource, qps.PreemptingResource)
remaining := resources.Sub(absGuaranteed, used)
return resources.ComponentWiseMin(remaining, parentResult)
@@ -873,10 +873,7 @@ func preemptPredicateCheck(plugin
api.ResourceManagerCallback, ch chan<- *predic
func batchPreemptionChecks(checks []*si.PreemptionPredicatesArgs, batchSize
int) [][]*si.PreemptionPredicatesArgs {
var result [][]*si.PreemptionPredicatesArgs
for i := 0; i < len(checks); i += batchSize {
- end := i + batchSize
- if end > len(checks) {
- end = len(checks)
- }
+ end := min(i+batchSize, len(checks))
result = append(result, checks[i:end])
}
return result
diff --git a/pkg/scheduler/objects/queue.go b/pkg/scheduler/objects/queue.go
index 6f33232d..43e0b4ed 100644
--- a/pkg/scheduler/objects/queue.go
+++ b/pkg/scheduler/objects/queue.go
@@ -1956,9 +1956,7 @@ func (sq *Queue) recalculatePriority() int32 {
curr := configs.MinPriority
for _, v := range items {
- if v > curr {
- curr = v
- }
+ curr = max(v, curr)
}
sq.currentPriority = curr
return priorityValueByPolicy(sq.priorityPolicy, sq.priorityOffset, curr)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]