From 3050b21e6c68a43cdb6ab613ff3ca12379cdf322 Mon Sep 17 00:00:00 2001 From: Yongbo Jiang Date: Tue, 8 Aug 2023 17:21:25 +0800 Subject: [PATCH 1/2] This is an automated cherry-pick of #44972 Signed-off-by: ti-chi-bot --- executor/calibrate_resource.go | 9 +- executor/calibrate_resource_test.go | 167 +++++++++++++++++++++------- 2 files changed, 131 insertions(+), 45 deletions(-) diff --git a/executor/calibrate_resource.go b/executor/calibrate_resource.go index 47c2d3cf93b75..327acab36c743 100644 --- a/executor/calibrate_resource.go +++ b/executor/calibrate_resource.go @@ -115,14 +115,12 @@ const ( // lowUsageThreshold is the threshold used to determine whether the CPU is too low. // When the CPU utilization of tikv or tidb is lower than lowUsageThreshold, but neither is higher than valuableUsageThreshold, the sampling point is unavailable lowUsageThreshold = 0.1 - // calibration is performed only when the available time point exceeds the percentOfPass - percentOfPass = 0.9 // For quotas computed at each point in time, the maximum and minimum portions are discarded, and discardRate is the percentage discarded discardRate = 0.1 // duration Indicates the supported calibration duration maxDuration = time.Hour * 24 - minDuration = time.Minute * 10 + minDuration = time.Minute ) type calibrateResourceExec struct { @@ -260,10 +258,7 @@ func (e *calibrateResourceExec) dynamicCalibrate(ctx context.Context, req *chunk tidbCPUs.next() tikvCPUs.next() } - if len(quotas) < 5 { - return errLowUsage - } - if float64(len(quotas))/float64(len(quotas)+lowCount) <= percentOfPass { + if len(quotas) < 2 { return errLowUsage } sort.Slice(quotas, func(i, j int) bool { diff --git a/executor/calibrate_resource_test.go b/executor/calibrate_resource_test.go index 21bde73c79029..e4d02bf6505f3 100644 --- a/executor/calibrate_resource_test.go +++ b/executor/calibrate_resource_test.go @@ -131,6 +131,105 @@ func TestCalibrateResource(t *testing.T) { } tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE").Check(testkit.Rows("38760")) +<<<<<<< HEAD:executor/calibrate_resource_test.go +======= + ru1 := [][]types.Datum{ + types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), 2250.0), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), 2200.0), + types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), 2200.0), + types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), 2100.0), + types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), 2250.0), + types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), 2300.0), + types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), 2230.0), + types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), 2210.0), + types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), 2250.0), + types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), 2330.0), + types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), 2330.0), + types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), 2300.0), + types.MakeDatums(datetimeBeforeNow(10*time.Second), 2280.0), + } + mockData["resource_manager_resource_unit"] = ru1 + cpu1 := [][]types.Datum{ + types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tidb-0", "tidb", 1.234), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tidb-0", "tidb", 1.212), + types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tidb-0", "tidb", 1.212), + types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tidb-0", "tidb", 1.233), + types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tidb-0", "tidb", 1.234), + types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tidb-0", "tidb", 1.213), + types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tidb-0", "tidb", 1.209), + types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tidb-0", "tidb", 1.213), + types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tidb-0", "tidb", 1.236), + types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tidb-0", "tidb", 1.228), + types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tidb-0", "tidb", 1.219), + types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tidb-0", "tidb", 1.220), + types.MakeDatums(datetimeBeforeNow(10*time.Second), "tidb-0", "tidb", 1.221), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-1", "tikv", 2.219), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-1", "tikv", 2.212), + types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-1", "tikv", 2.212), + types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-1", "tikv", 2.233), + types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-1", "tikv", 2.234), + types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-1", "tikv", 2.213), + types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-1", "tikv", 2.209), + types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-1", "tikv", 2.213), + types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-1", "tikv", 2.236), + types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-1", "tikv", 2.228), + types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-1", "tikv", 2.219), + types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-1", "tikv", 2.220), + types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-1", "tikv", 2.281), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-0", "tikv", 2.280), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-0", "tikv", 2.282), + types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-0", "tikv", 2.282), + types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), + types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-0", "tikv", 2.284), + types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), + types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-0", "tikv", 2.289), + types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), + types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-0", "tikv", 2.286), + types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-0", "tikv", 2.288), + types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-0", "tikv", 2.289), + types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-0", "tikv", 2.280), + types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-0", "tikv", 2.281), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-2", "tikv", 2.281), + types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-2", "tikv", 2.112), + types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-2", "tikv", 2.112), + types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-2", "tikv", 2.133), + types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-2", "tikv", 2.134), + types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-2", "tikv", 2.113), + types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-2", "tikv", 2.109), + types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-2", "tikv", 2.113), + types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-2", "tikv", 2.136), + types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-2", "tikv", 2.128), + types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-2", "tikv", 2.119), + types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-2", "tikv", 2.120), + types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-2", "tikv", 2.281), + } + mockData["process_cpu_usage"] = cpu1 + + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION '11m'").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute END_TIME now()").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME now() START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute DURATION interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 11 minute START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME now() DURATION interval 11 minute").Check(testkit.Rows("8161")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 21 minute END_TIME now() - interval 1 minute").Check(testkit.Rows("8141")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION '20m' START_TIME now() - interval 21 minute").Check(testkit.Rows("8141")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 20 minute START_TIME now() - interval 21 minute").Check(testkit.Rows("8141")) + + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 21 minute END_TIME now() - interval 20 minute").Check(testkit.Rows("7978")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 4 minute").Check(testkit.Rows("8297")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute").Check(testkit.Rows("8297")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute END_TIME now()").Check(testkit.Rows("8297")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute").Check(testkit.Rows("8223")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 8 minute").Check(testkit.Rows("8223")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute END_TIME now() - interval 4 minute").Check(testkit.Rows("8147")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute DURATION interval 4 minute").Check(testkit.Rows("8147")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute START_TIME now() - interval 8 minute").Check(testkit.Rows("8147")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute END_TIME now() - interval 4 minute").Check(testkit.Rows("8147")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME date_sub(now(), interval 4 minute ) DURATION '4m'").Check(testkit.Rows("8147")) + +>>>>>>> 49b7cc6a3c0 (calibrate: shorten the minimum calibrate duration (#44972)):executor/internal/calibrateresource/calibrate_resource_test.go // construct data for dynamic calibrate ru1 := [][]types.Datum{ types.MakeDatums(datetime("2020-02-12 10:35:00"), 2200.0), @@ -460,13 +559,9 @@ func TestCalibrateResource(t *testing.T) { err = rs.Next(ctx, rs.NewChunk(nil)) require.ErrorContains(t, err, "the duration of calibration is too long") - rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' DURATION '5m'") - require.NoError(t, err) - require.NotNil(t, rs) - err = rs.Next(ctx, rs.NewChunk(nil)) - require.ErrorContains(t, err, "the duration of calibration is too short") + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' DURATION '1m'").Check(testkit.Rows("5337")) - rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:43:00'") + rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:35:40'") require.NoError(t, err) require.NotNil(t, rs) err = rs.Next(ctx, rs.NewChunk(nil)) @@ -485,47 +580,47 @@ func TestCalibrateResource(t *testing.T) { require.ErrorContains(t, err, "the duration of calibration is too long") mockData["process_cpu_usage"] = [][]types.Datum{ - types.MakeDatums(datetime("2020-02-12 10:35:00"), "tidb-0", "tidb", 3.212), - types.MakeDatums(datetime("2020-02-12 10:36:00"), "tidb-0", "tidb", 3.233), - types.MakeDatums(datetime("2020-02-12 10:37:00"), "tidb-0", "tidb", 3.234), + types.MakeDatums(datetime("2020-02-12 10:35:00"), "tidb-0", "tidb", 0.212), + types.MakeDatums(datetime("2020-02-12 10:36:00"), "tidb-0", "tidb", 0.233), + types.MakeDatums(datetime("2020-02-12 10:37:00"), "tidb-0", "tidb", 0.234), types.MakeDatums(datetime("2020-02-12 10:38:00"), "tidb-0", "tidb", 3.213), - types.MakeDatums(datetime("2020-02-12 10:39:00"), "tidb-0", "tidb", 3.209), - types.MakeDatums(datetime("2020-02-12 10:40:00"), "tidb-0", "tidb", 3.213), - types.MakeDatums(datetime("2020-02-12 10:41:00"), "tidb-0", "tidb", 3.236), - types.MakeDatums(datetime("2020-02-12 10:42:00"), "tidb-0", "tidb", 3.228), + types.MakeDatums(datetime("2020-02-12 10:39:00"), "tidb-0", "tidb", 0.209), + types.MakeDatums(datetime("2020-02-12 10:40:00"), "tidb-0", "tidb", 0.213), + types.MakeDatums(datetime("2020-02-12 10:41:00"), "tidb-0", "tidb", 0.236), + types.MakeDatums(datetime("2020-02-12 10:42:00"), "tidb-0", "tidb", 0.228), types.MakeDatums(datetime("2020-02-12 10:43:00"), "tidb-0", "tidb", 0.219), types.MakeDatums(datetime("2020-02-12 10:44:00"), "tidb-0", "tidb", 0.220), types.MakeDatums(datetime("2020-02-12 10:45:00"), "tidb-0", "tidb", 0.221), types.MakeDatums(datetime("2020-02-12 10:35:00"), "tikv-1", "tikv", 2.212), - types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-1", "tikv", 2.233), - types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-1", "tikv", 2.234), - types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-1", "tikv", 2.213), - types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-1", "tikv", 2.209), + types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-1", "tikv", 0.233), + types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-1", "tikv", 0.234), + types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-1", "tikv", 0.213), + types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-1", "tikv", 0.209), types.MakeDatums(datetime("2020-02-12 10:40:00"), "tikv-1", "tikv", 2.213), - types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-1", "tikv", 2.236), - types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-1", "tikv", 2.228), + types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-1", "tikv", 0.236), + types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-1", "tikv", 0.228), types.MakeDatums(datetime("2020-02-12 10:43:00"), "tikv-1", "tikv", 0.219), types.MakeDatums(datetime("2020-02-12 10:44:00"), "tikv-1", "tikv", 0.220), types.MakeDatums(datetime("2020-02-12 10:45:00"), "tikv-1", "tikv", 0.281), - types.MakeDatums(datetime("2020-02-12 10:35:00"), "tikv-0", "tikv", 2.282), - types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-0", "tikv", 2.284), + types.MakeDatums(datetime("2020-02-12 10:35:00"), "tikv-0", "tikv", 0.282), + types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-0", "tikv", 0.283), + types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-0", "tikv", 0.284), types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-0", "tikv", 2.289), - types.MakeDatums(datetime("2020-02-12 10:40:00"), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-0", "tikv", 2.286), - types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-0", "tikv", 2.288), + types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-0", "tikv", 0.289), + types.MakeDatums(datetime("2020-02-12 10:40:00"), "tikv-0", "tikv", 0.283), + types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-0", "tikv", 0.286), + types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-0", "tikv", 0.288), types.MakeDatums(datetime("2020-02-12 10:43:00"), "tikv-0", "tikv", 0.289), types.MakeDatums(datetime("2020-02-12 10:44:00"), "tikv-0", "tikv", 0.280), types.MakeDatums(datetime("2020-02-12 10:45:00"), "tikv-0", "tikv", 0.281), types.MakeDatums(datetime("2020-02-12 10:35:00"), "tikv-2", "tikv", 2.112), - types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-2", "tikv", 2.133), - types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-2", "tikv", 2.134), - types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-2", "tikv", 2.113), - types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-2", "tikv", 2.109), - types.MakeDatums(datetime("2020-02-12 10:40:00"), "tikv-2", "tikv", 2.113), - types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-2", "tikv", 2.136), - types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-2", "tikv", 2.128), + types.MakeDatums(datetime("2020-02-12 10:36:00"), "tikv-2", "tikv", 0.133), + types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-2", "tikv", 0.134), + types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-2", "tikv", 0.113), + types.MakeDatums(datetime("2020-02-12 10:39:00"), "tikv-2", "tikv", 0.109), + types.MakeDatums(datetime("2020-02-12 10:40:00"), "tikv-2", "tikv", 0.113), + types.MakeDatums(datetime("2020-02-12 10:41:00"), "tikv-2", "tikv", 0.136), + types.MakeDatums(datetime("2020-02-12 10:42:00"), "tikv-2", "tikv", 0.128), types.MakeDatums(datetime("2020-02-12 10:43:00"), "tikv-2", "tikv", 0.119), types.MakeDatums(datetime("2020-02-12 10:44:00"), "tikv-2", "tikv", 0.120), types.MakeDatums(datetime("2020-02-12 10:45:00"), "tikv-2", "tikv", 0.281), @@ -555,11 +650,7 @@ func TestCalibrateResource(t *testing.T) { types.MakeDatums(datetime("2020-02-12 10:37:00"), "tikv-2", "tikv", 2.134), types.MakeDatums(datetime("2020-02-12 10:38:00"), "tikv-2", "tikv", 2.113), } - rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:45:00'") - require.NoError(t, err) - require.NotNil(t, rs) - err = rs.Next(ctx, rs.NewChunk(nil)) - require.ErrorContains(t, err, "The workload in selected time window is too low") + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:45:00'").Check(testkit.Rows("5492")) delete(mockData, "process_cpu_usage") rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:45:00'") From e66ef469bd4347b80466292ad22c00e436aece3a Mon Sep 17 00:00:00 2001 From: Cabinfever_B Date: Fri, 11 Aug 2023 16:59:23 +0800 Subject: [PATCH 2/2] resolve conflict Signed-off-by: Cabinfever_B --- executor/calibrate_resource_test.go | 101 +--------------------------- 1 file changed, 1 insertion(+), 100 deletions(-) diff --git a/executor/calibrate_resource_test.go b/executor/calibrate_resource_test.go index e4d02bf6505f3..3aa85aa4b42d7 100644 --- a/executor/calibrate_resource_test.go +++ b/executor/calibrate_resource_test.go @@ -131,105 +131,6 @@ func TestCalibrateResource(t *testing.T) { } tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE").Check(testkit.Rows("38760")) -<<<<<<< HEAD:executor/calibrate_resource_test.go -======= - ru1 := [][]types.Datum{ - types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), 2250.0), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), 2200.0), - types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), 2200.0), - types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), 2100.0), - types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), 2250.0), - types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), 2300.0), - types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), 2230.0), - types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), 2210.0), - types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), 2250.0), - types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), 2330.0), - types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), 2330.0), - types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), 2300.0), - types.MakeDatums(datetimeBeforeNow(10*time.Second), 2280.0), - } - mockData["resource_manager_resource_unit"] = ru1 - cpu1 := [][]types.Datum{ - types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tidb-0", "tidb", 1.234), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tidb-0", "tidb", 1.212), - types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tidb-0", "tidb", 1.212), - types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tidb-0", "tidb", 1.233), - types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tidb-0", "tidb", 1.234), - types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tidb-0", "tidb", 1.213), - types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tidb-0", "tidb", 1.209), - types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tidb-0", "tidb", 1.213), - types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tidb-0", "tidb", 1.236), - types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tidb-0", "tidb", 1.228), - types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tidb-0", "tidb", 1.219), - types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tidb-0", "tidb", 1.220), - types.MakeDatums(datetimeBeforeNow(10*time.Second), "tidb-0", "tidb", 1.221), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-1", "tikv", 2.219), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-1", "tikv", 2.212), - types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-1", "tikv", 2.212), - types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-1", "tikv", 2.233), - types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-1", "tikv", 2.234), - types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-1", "tikv", 2.213), - types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-1", "tikv", 2.209), - types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-1", "tikv", 2.213), - types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-1", "tikv", 2.236), - types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-1", "tikv", 2.228), - types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-1", "tikv", 2.219), - types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-1", "tikv", 2.220), - types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-1", "tikv", 2.281), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-0", "tikv", 2.280), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-0", "tikv", 2.282), - types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-0", "tikv", 2.282), - types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-0", "tikv", 2.284), - types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-0", "tikv", 2.289), - types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-0", "tikv", 2.283), - types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-0", "tikv", 2.286), - types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-0", "tikv", 2.288), - types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-0", "tikv", 2.289), - types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-0", "tikv", 2.280), - types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-0", "tikv", 2.281), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+40*time.Second), "tikv-2", "tikv", 2.281), - types.MakeDatums(datetimeBeforeNow(20*time.Minute+10*time.Second), "tikv-2", "tikv", 2.112), - types.MakeDatums(datetimeBeforeNow(10*time.Minute+10*time.Second), "tikv-2", "tikv", 2.112), - types.MakeDatums(datetimeBeforeNow(9*time.Minute+10*time.Second), "tikv-2", "tikv", 2.133), - types.MakeDatums(datetimeBeforeNow(8*time.Minute+10*time.Second), "tikv-2", "tikv", 2.134), - types.MakeDatums(datetimeBeforeNow(7*time.Minute+10*time.Second), "tikv-2", "tikv", 2.113), - types.MakeDatums(datetimeBeforeNow(6*time.Minute+10*time.Second), "tikv-2", "tikv", 2.109), - types.MakeDatums(datetimeBeforeNow(5*time.Minute+10*time.Second), "tikv-2", "tikv", 2.113), - types.MakeDatums(datetimeBeforeNow(4*time.Minute+10*time.Second), "tikv-2", "tikv", 2.136), - types.MakeDatums(datetimeBeforeNow(3*time.Minute+10*time.Second), "tikv-2", "tikv", 2.128), - types.MakeDatums(datetimeBeforeNow(2*time.Minute+10*time.Second), "tikv-2", "tikv", 2.119), - types.MakeDatums(datetimeBeforeNow(1*time.Minute+10*time.Second), "tikv-2", "tikv", 2.120), - types.MakeDatums(datetimeBeforeNow(10*time.Second), "tikv-2", "tikv", 2.281), - } - mockData["process_cpu_usage"] = cpu1 - - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION '11m'").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute END_TIME now()").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME now() START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 11 minute DURATION interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 11 minute START_TIME now() - interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME now() DURATION interval 11 minute").Check(testkit.Rows("8161")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 21 minute END_TIME now() - interval 1 minute").Check(testkit.Rows("8141")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION '20m' START_TIME now() - interval 21 minute").Check(testkit.Rows("8141")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 20 minute START_TIME now() - interval 21 minute").Check(testkit.Rows("8141")) - - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 21 minute END_TIME now() - interval 20 minute").Check(testkit.Rows("7978")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 4 minute").Check(testkit.Rows("8297")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute").Check(testkit.Rows("8297")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute END_TIME now()").Check(testkit.Rows("8297")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute").Check(testkit.Rows("8223")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 8 minute").Check(testkit.Rows("8223")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute END_TIME now() - interval 4 minute").Check(testkit.Rows("8147")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME now() - interval 8 minute DURATION interval 4 minute").Check(testkit.Rows("8147")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute START_TIME now() - interval 8 minute").Check(testkit.Rows("8147")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE DURATION interval 4 minute END_TIME now() - interval 4 minute").Check(testkit.Rows("8147")) - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE END_TIME date_sub(now(), interval 4 minute ) DURATION '4m'").Check(testkit.Rows("8147")) - ->>>>>>> 49b7cc6a3c0 (calibrate: shorten the minimum calibrate duration (#44972)):executor/internal/calibrateresource/calibrate_resource_test.go // construct data for dynamic calibrate ru1 := [][]types.Datum{ types.MakeDatums(datetime("2020-02-12 10:35:00"), 2200.0), @@ -559,7 +460,7 @@ func TestCalibrateResource(t *testing.T) { err = rs.Next(ctx, rs.NewChunk(nil)) require.ErrorContains(t, err, "the duration of calibration is too long") - tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' DURATION '1m'").Check(testkit.Rows("5337")) + tk.MustQueryWithContext(ctx, "CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' DURATION '1m'").Check(testkit.Rows("5616")) rs, err = tk.Exec("CALIBRATE RESOURCE START_TIME '2020-02-12 10:35:00' END_TIME '2020-02-12 10:35:40'") require.NoError(t, err)