未验证 提交 71f20124 编写于 作者: W wei liu 提交者: GitHub

enable collection rate limit when only global limit set (#24452)

Signed-off-by: NWei Liu <wei.liu@zilliz.com>
上级 19164ea7
......@@ -344,7 +344,7 @@ The maximum rate will not be greater than ` + "max" + `.`,
}
// [0, inf)
if rate < 0 {
return max
return p.DMLMaxInsertRate.GetValue()
}
return fmt.Sprintf("%f", rate)
},
......@@ -432,7 +432,7 @@ The maximum rate will not be greater than ` + "max" + `.`,
}
// [0, inf)
if rate < 0 {
return max
return p.DMLMaxDeleteRate.GetValue()
}
return fmt.Sprintf("%f", rate)
},
......@@ -520,7 +520,7 @@ The maximum rate will not be greater than ` + "max" + `.`,
}
// [0, inf)
if rate < 0 {
return max
return p.DMLMaxBulkLoadRate.GetValue()
}
return fmt.Sprintf("%f", rate)
},
......@@ -612,7 +612,7 @@ The maximum rate will not be greater than ` + "max" + `.`,
}
// [0, inf)
if getAsFloat(v) < 0 {
return max
return p.DQLMaxSearchRate.GetValue()
}
return v
},
......@@ -692,7 +692,7 @@ The maximum rate will not be greater than ` + "max" + `.`,
}
// [0, inf)
if getAsFloat(v) < 0 {
return max
return p.DQLMaxQueryRate.GetValue()
}
return v
},
......@@ -950,7 +950,7 @@ When memory usage < memoryLowWaterLevel, no action.`,
level := getAsFloat(v)
// (0, +inf)
if level <= 0 {
level = getAsFloat(quota)
return max
}
// megabytes to bytes
return fmt.Sprintf("%f", megaBytes2Bytes(level))
......@@ -971,7 +971,7 @@ When memory usage < memoryLowWaterLevel, no action.`,
level := getAsFloat(v)
// (0, +inf)
if level <= 0 {
level = getAsFloat(quota)
return p.DiskQuota.GetValue()
}
// megabytes to bytes
return fmt.Sprintf("%f", megaBytes2Bytes(level))
......
......@@ -81,6 +81,34 @@ func TestQuotaParam(t *testing.T) {
assert.Equal(t, float64(1)*1024*1024, params.QuotaConfig.DMLMinDeleteRatePerCollection.GetAsFloat())
assert.Equal(t, float64(10)*1024*1024, params.QuotaConfig.DMLMaxBulkLoadRatePerCollection.GetAsFloat())
assert.Equal(t, float64(1)*1024*1024, params.QuotaConfig.DMLMinBulkLoadRatePerCollection.GetAsFloat())
// test only set global rate limit
params.Save(params.QuotaConfig.DMLMaxInsertRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DMLMinInsertRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DMLMaxDeleteRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DMLMinDeleteRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DMLMaxBulkLoadRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DMLMinBulkLoadRatePerCollection.Key, "-1")
assert.Equal(t, params.QuotaConfig.DMLMaxInsertRate.GetAsFloat(), params.QuotaConfig.DMLMaxInsertRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinInsertRatePerCollection.GetAsFloat())
assert.Equal(t, params.QuotaConfig.DMLMaxDeleteRate.GetAsFloat(), params.QuotaConfig.DMLMaxDeleteRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinDeleteRatePerCollection.GetAsFloat())
assert.Equal(t, params.QuotaConfig.DMLMaxBulkLoadRate.GetAsFloat(), params.QuotaConfig.DMLMaxBulkLoadRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinBulkLoadRatePerCollection.GetAsFloat())
// test invalid config value
params.Save(params.QuotaConfig.DMLMaxInsertRatePerCollection.Key, "1")
params.Save(params.QuotaConfig.DMLMinInsertRatePerCollection.Key, "5")
params.Save(params.QuotaConfig.DMLMaxDeleteRatePerCollection.Key, "1")
params.Save(params.QuotaConfig.DMLMinDeleteRatePerCollection.Key, "5")
params.Save(params.QuotaConfig.DMLMaxBulkLoadRatePerCollection.Key, "1")
params.Save(params.QuotaConfig.DMLMinBulkLoadRatePerCollection.Key, "5")
assert.Equal(t, float64(1*1024*1024), params.QuotaConfig.DMLMaxInsertRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinInsertRatePerCollection.GetAsFloat())
assert.Equal(t, float64(1*1024*1024), params.QuotaConfig.DMLMaxDeleteRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinDeleteRatePerCollection.GetAsFloat())
assert.Equal(t, float64(1*1024*1024), params.QuotaConfig.DMLMaxBulkLoadRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DMLMinBulkLoadRatePerCollection.GetAsFloat())
})
t.Run("test dql", func(t *testing.T) {
......@@ -107,6 +135,26 @@ func TestQuotaParam(t *testing.T) {
assert.Equal(t, float64(1), params.QuotaConfig.DQLMinSearchRatePerCollection.GetAsFloat())
assert.Equal(t, float64(10), params.QuotaConfig.DQLMaxQueryRatePerCollection.GetAsFloat())
assert.Equal(t, float64(1), params.QuotaConfig.DQLMinQueryRatePerCollection.GetAsFloat())
// test only config global value
params.Save(params.QuotaConfig.DQLMaxSearchRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DQLMinSearchRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DQLMaxQueryRatePerCollection.Key, "-1")
params.Save(params.QuotaConfig.DQLMinQueryRatePerCollection.Key, "-1")
assert.Equal(t, params.QuotaConfig.DQLMaxSearchRate.GetAsFloat(), params.QuotaConfig.DQLMaxSearchRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DQLMinSearchRatePerCollection.GetAsFloat())
assert.Equal(t, params.QuotaConfig.DQLMaxQueryRate.GetAsFloat(), params.QuotaConfig.DQLMaxQueryRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DQLMinQueryRatePerCollection.GetAsFloat())
// test invalid config
params.Save(params.QuotaConfig.DQLMaxSearchRatePerCollection.Key, "1")
params.Save(params.QuotaConfig.DQLMinSearchRatePerCollection.Key, "5")
params.Save(params.QuotaConfig.DQLMaxQueryRatePerCollection.Key, "1")
params.Save(params.QuotaConfig.DQLMinQueryRatePerCollection.Key, "5")
assert.Equal(t, float64(1), params.QuotaConfig.DQLMaxSearchRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DQLMinSearchRatePerCollection.GetAsFloat())
assert.Equal(t, float64(1), params.QuotaConfig.DQLMaxQueryRatePerCollection.GetAsFloat())
assert.Equal(t, float64(0), params.QuotaConfig.DQLMinQueryRatePerCollection.GetAsFloat())
})
t.Run("test limits", func(t *testing.T) {
......@@ -139,4 +187,14 @@ func TestQuotaParam(t *testing.T) {
assert.Equal(t, defaultMax, qc.MaxReadResultRate.GetAsFloat())
assert.Equal(t, 0.9, qc.CoolOffSpeed.GetAsFloat())
})
t.Run("test disk quota", func(t *testing.T) {
assert.Equal(t, defaultMax, qc.DiskQuota.GetAsFloat())
assert.Equal(t, defaultMax, qc.DiskQuotaPerCollection.GetAsFloat())
// test invalid config
params.Save(params.QuotaConfig.DiskQuotaPerCollection.Key, "-1")
assert.Equal(t, qc.DiskQuota.GetAsFloat(), qc.DiskQuotaPerCollection.GetAsFloat())
})
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册