From e241f9b6aedce70c77d4f226b6b35a62398ea142 Mon Sep 17 00:00:00 2001 From: Max Hoffman Date: Tue, 13 Feb 2024 14:47:18 -0800 Subject: [PATCH 1/4] [no-release-notes] Stats on for TPC-C --- go/performance/utils/tpcc_runner/dolt.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/go/performance/utils/tpcc_runner/dolt.go b/go/performance/utils/tpcc_runner/dolt.go index e9ab273cf70..6e94b8f1a92 100644 --- a/go/performance/utils/tpcc_runner/dolt.go +++ b/go/performance/utils/tpcc_runner/dolt.go @@ -52,6 +52,10 @@ func BenchmarkDolt(ctx context.Context, tppcConfig *TpccBenchmarkConfig, serverC return nil, err } + if err := configureServer(ctx, serverConfig.ServerExec, testRepo); err != nil { + return nil, err + } + withKeyCtx, cancel := context.WithCancel(ctx) gServer, serverCtx := errgroup.WithContext(withKeyCtx) @@ -147,6 +151,22 @@ func initDoltRepo(ctx context.Context, config *sysbench_runner.ServerConfig, nbf return testRepo, nil } +func configureServer(ctx context.Context, doltPath, dbPath string) error { + queries := []string{ + "set @@PERSIST.dolt_stats_auto_refresh_enabled = 1;", + "set @@PERSIST.dolt_stats_auto_refresh_interval = 2;", + "set @@PERSIST.dolt_stats_auto_refresh_threshold = 1.0;", + } + for _, q := range queries { + q := sysbench_runner.ExecCommand(ctx, doltPath, "sql", "-q", q) + q.Dir = dbPath + if err := q.Run(); err != nil { + return err + } + } + return nil +} + // getDoltServer returns a exec.Cmd for a dolt server func getDoltServer(ctx context.Context, config *sysbench_runner.ServerConfig, testRepo string, params []string) *exec.Cmd { server := sysbench_runner.ExecCommand(ctx, config.ServerExec, params...) From b9c12e3b1668c9bba4a958fbf0a7fab35ccbf1c2 Mon Sep 17 00:00:00 2001 From: Max Hoffman Date: Tue, 13 Feb 2024 15:02:42 -0800 Subject: [PATCH 2/4] normalize tpcc to one client --- go/performance/utils/tpcc_runner/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/performance/utils/tpcc_runner/config.go b/go/performance/utils/tpcc_runner/config.go index 7ffeeeba874..172da80c185 100644 --- a/go/performance/utils/tpcc_runner/config.go +++ b/go/performance/utils/tpcc_runner/config.go @@ -183,7 +183,7 @@ type TpccTestParams struct { // NewDefaultTpccParams returns default TpccTestParams. func NewDefaultTpccParams() *TpccTestParams { return &TpccTestParams{ - NumThreads: 2, // TODO: When ready, expose as command line argument. + NumThreads: 1, // TODO: When ready, expose as command line argument. ScaleFactor: 1, Tables: 1, TrxLevel: "RR", From df11f68a4e9cd50a01c5ddb38b8b12fce1c1eb1e Mon Sep 17 00:00:00 2001 From: Max Hoffman Date: Wed, 14 Feb 2024 09:39:53 -0800 Subject: [PATCH 3/4] tpcc tps multiplier --- .../performance-benchmarking/get-mysql-dolt-job-json.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh b/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh index 0e0efb6dd4a..75aeb0693f3 100755 --- a/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh +++ b/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh @@ -44,8 +44,9 @@ meanMultiplierWritesQuery="select round(avg(multipliers), $precision) as writes_ meanMultiplierOverallQuery="select round(avg(multipliers), $precision) as overall_mean_multiplier from (select (round(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision)) as multipliers from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name != 'bulk_insert' group by f.test_name)" -tpccLatencyQuery="select f.test_name as test_name, f.server_name, f.server_version, avg(f.latency_percentile) as from_latency_median, t.server_name, t.server_version, avg(t.latency_percentile) as to_latency_median, ROUND(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE '$tpccRegex' group by f.test_name;" -tpccTpsQuery="select f.test_name as test_name, f.server_name, f.server_version, avg(f.sql_transactions_per_second) as tps, t.test_name as test_name, t.server_name, t.server_version, avg(t.sql_transactions_per_second) as tps from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE 'tpcc%' group by f.test_name;" +tpccLatencyQuery="select f.test_name as tpcc_latency, f.server_name, f.server_version, avg(f.latency_percentile) as from_latency_median, t.server_name, t.server_version, avg(t.latency_percentile) as to_latency_median, ROUND(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE '$tpccRegex' group by f.test_name;" +tpccTpsQuery="select f.test_name as tpcc_tps, f.server_name, f.server_version, avg(f.sql_transactions_per_second) as tps, t.test_name as test_name, t.server_name, t.server_version, avg(t.sql_transactions_per_second) as tps from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE 'tpcc%' group by f.test_name;" +tpccTpsMultiplierQuery="select round(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as tpcc_tps_multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name like 'tpcc%' group by f.test_name" echo ' { @@ -109,6 +110,7 @@ echo ' "--sysbenchQueries='"$meanMultiplierOverallQuery"'", "--tpccQueries='"$tpccLatencyQuery"'", "--tpccQueries='"$tpccTpsQuery"'" + "--tpccQueries='"$tpccTpsMultiplierQuery"'" ] } ], From 373b2f249d4a2d7221aac4dca11abc87bec6b9f5 Mon Sep 17 00:00:00 2001 From: Max Hoffman Date: Wed, 14 Feb 2024 13:30:01 -0800 Subject: [PATCH 4/4] add multiplier --- .../scripts/performance-benchmarking/get-mysql-dolt-job-json.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh b/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh index 75aeb0693f3..2f4597803d5 100755 --- a/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh +++ b/.github/scripts/performance-benchmarking/get-mysql-dolt-job-json.sh @@ -45,7 +45,7 @@ meanMultiplierWritesQuery="select round(avg(multipliers), $precision) as writes_ meanMultiplierOverallQuery="select round(avg(multipliers), $precision) as overall_mean_multiplier from (select (round(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision)) as multipliers from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name != 'bulk_insert' group by f.test_name)" tpccLatencyQuery="select f.test_name as tpcc_latency, f.server_name, f.server_version, avg(f.latency_percentile) as from_latency_median, t.server_name, t.server_version, avg(t.latency_percentile) as to_latency_median, ROUND(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE '$tpccRegex' group by f.test_name;" -tpccTpsQuery="select f.test_name as tpcc_tps, f.server_name, f.server_version, avg(f.sql_transactions_per_second) as tps, t.test_name as test_name, t.server_name, t.server_version, avg(t.sql_transactions_per_second) as tps from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE 'tpcc%' group by f.test_name;" +tpccTpsQuery="select f.test_name as tpcc_tps, f.server_name, f.server_version, avg(f.sql_transactions_per_second) as from_tps, t.test_name as test_name, t.server_name, t.server_version, avg(t.sql_transactions_per_second) as to_tps, ROUND(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name LIKE 'tpcc%' group by f.test_name;" tpccTpsMultiplierQuery="select round(avg(t.latency_percentile) / (avg(f.latency_percentile) + .000001), $precision) as tpcc_tps_multiplier from from_results as f join to_results as t on f.test_name = t.test_name where f.test_name like 'tpcc%' group by f.test_name" echo '