diff --git a/internal/rootcoord/quota_center.go b/internal/rootcoord/quota_center.go index 6e689eb5c5..32f5fe80ec 100644 --- a/internal/rootcoord/quota_center.go +++ b/internal/rootcoord/quota_center.go @@ -417,7 +417,7 @@ func (q *QuotaCenter) getTimeTickDelayFactor(ts Timestamp) float64 { t1, _ := tsoutil.ParseTS(ts) for nodeID, metric := range q.queryNodeMetrics { - if metric.Fgm.NumFlowGraph > 0 { + if metric.Fgm.NumFlowGraph > 0 && metric.Fgm.MinFlowGraphChannel != "" { t2, _ := tsoutil.ParseTS(metric.Fgm.MinFlowGraphTt) delay := t1.Sub(t2) if delay.Nanoseconds() > curMaxDelay.Nanoseconds() { @@ -430,7 +430,7 @@ func (q *QuotaCenter) getTimeTickDelayFactor(ts Timestamp) float64 { } } for nodeID, metric := range q.dataNodeMetrics { - if metric.Fgm.NumFlowGraph > 0 { + if metric.Fgm.NumFlowGraph > 0 && metric.Fgm.MinFlowGraphChannel != "" { t2, _ := tsoutil.ParseTS(metric.Fgm.MinFlowGraphTt) delay := t1.Sub(t2) if delay.Nanoseconds() > curMaxDelay.Nanoseconds() { diff --git a/internal/rootcoord/quota_center_test.go b/internal/rootcoord/quota_center_test.go index 83dab5a82a..96353c1830 100644 --- a/internal/rootcoord/quota_center_test.go +++ b/internal/rootcoord/quota_center_test.go @@ -157,8 +157,9 @@ func TestQuotaCenter(t *testing.T) { quotaCenter.tsoAllocator = alloc quotaCenter.queryNodeMetrics = map[UniqueID]*metricsinfo.QueryNodeQuotaMetrics{ 1: {Fgm: metricsinfo.FlowGraphMetric{ - MinFlowGraphTt: tsoutil.ComposeTSByTime(now, 0), - NumFlowGraph: 1, + MinFlowGraphTt: tsoutil.ComposeTSByTime(now, 0), + NumFlowGraph: 1, + MinFlowGraphChannel: "dml", }}} ts, err := quotaCenter.tsoAllocator.GenerateTSO(1) assert.NoError(t, err) @@ -174,8 +175,9 @@ func TestQuotaCenter(t *testing.T) { } quotaCenter.queryNodeMetrics = map[UniqueID]*metricsinfo.QueryNodeQuotaMetrics{ 1: {Fgm: metricsinfo.FlowGraphMetric{ - MinFlowGraphTt: tsoutil.ComposeTSByTime(now, 0), - NumFlowGraph: 1, + MinFlowGraphTt: tsoutil.ComposeTSByTime(now, 0), + NumFlowGraph: 1, + MinFlowGraphChannel: "dml", }}} ts, err = quotaCenter.tsoAllocator.GenerateTSO(1) assert.NoError(t, err) @@ -210,7 +212,15 @@ func TestQuotaCenter(t *testing.T) { for i, c := range ttCases { paramtable.Get().Save(Params.QuotaConfig.MaxTimeTickDelay.Key, fmt.Sprintf("%f", c.maxTtDelay.Seconds())) fgTs := tsoutil.ComposeTSByTime(c.fgTt, 0) - quotaCenter.queryNodeMetrics = map[UniqueID]*metricsinfo.QueryNodeQuotaMetrics{1: {Fgm: metricsinfo.FlowGraphMetric{NumFlowGraph: 1, MinFlowGraphTt: fgTs}}} + quotaCenter.queryNodeMetrics = map[UniqueID]*metricsinfo.QueryNodeQuotaMetrics{ + 1: { + Fgm: metricsinfo.FlowGraphMetric{ + NumFlowGraph: 1, + MinFlowGraphTt: fgTs, + MinFlowGraphChannel: "dml", + }, + }, + } curTs := tsoutil.ComposeTSByTime(c.curTt, 0) factor := quotaCenter.getTimeTickDelayFactor(curTs) if math.Abs(factor-c.expectedFactor) > 0.000001 {