From 52ee91b39c9274b85f0ca37de1744e9d9a93b1f3 Mon Sep 17 00:00:00 2001 From: Prerit Jain Date: Thu, 11 Aug 2022 21:26:02 -0700 Subject: [PATCH] [mysql_thread_pool] Added test for external updates on min/max cpu utilization Summary: Following along the lines of D38307552, adding test for tenantresourcesettings variable on the mysql side. Abandoning: D38307685 since the branch has changed as well as the variable names. Test Plan: MTR: ../tools/mysqltest.sh --record --thread-pool tenant_resource_settings_basic Reviewers: mzait, sunxiayi, greynya Reviewed By: mzait Subscribers: webscalesql-eng@fb.com Differential Revision: https://phabricator.intern.facebook.com/D38647591 --- .../r/tenant_resource_settings_basic.result | 74 +++++++++++++++++++ .../t/tenant_resource_settings_basic.test | 67 +++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 mysql-test/suite/thread_pool/r/tenant_resource_settings_basic.result create mode 100644 mysql-test/suite/thread_pool/t/tenant_resource_settings_basic.test diff --git a/mysql-test/suite/thread_pool/r/tenant_resource_settings_basic.result b/mysql-test/suite/thread_pool/r/tenant_resource_settings_basic.result new file mode 100644 index 000000000000..799541bd05cd --- /dev/null +++ b/mysql-test/suite/thread_pool/r/tenant_resource_settings_basic.result @@ -0,0 +1,74 @@ +create database test_db; +create user test_user@localhost; +grant all on test.* to test_user@localhost; +grant all on test_db.* to test_user@localhost; +use test_db; +connect con, localhost, test_user,, test_db; +connect con1, localhost, root,, test_db; +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 0 100 +__system__ 0 100 +connection con1; +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=0"; +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 0 100 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=100"; +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 0 100 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=20"; +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 100 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=60"; +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=101"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of 'test_db cpu_max_percent=101' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db max_percent=60"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of 'test_db max_percent=60' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=-1"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of 'test_db cpu_min_percent=-1' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=60 cpu_min_percent=10"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of 'test_db cpu_max_percent=60 cpu_min_percent=10' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "__system__ cpu_min_percent=10"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of '__system__ cpu_min_percent=10' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +set @@global.thread_pool_tenant_resource_settings = "test_db3 cpu_max_percent=60"; +ERROR 42000: Variable 'thread_pool_tenant_resource_settings' can't be set to the value of 'test_db3 cpu_max_percent=60' +select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; +SCHEMA_NAME CPU_MIN_PERCENT CPU_MAX_PERCENT +test_db 20 60 +__system__ 0 100 +disconnect con; +disconnect con1; +connection default; +set @@global.thread_pool_tenant_resource_settings = DEFAULT; +drop database test_db; +drop user test_user@localhost; diff --git a/mysql-test/suite/thread_pool/t/tenant_resource_settings_basic.test b/mysql-test/suite/thread_pool/t/tenant_resource_settings_basic.test new file mode 100644 index 000000000000..b298f1758780 --- /dev/null +++ b/mysql-test/suite/thread_pool/t/tenant_resource_settings_basic.test @@ -0,0 +1,67 @@ +--source include/have_thread_pool_plugin.inc +--source include/count_sessions.inc + + +create database test_db; +create user test_user@localhost; +grant all on test.* to test_user@localhost; +grant all on test_db.* to test_user@localhost; +use test_db; + +let $ac_entities_query=select SCHEMA_NAME, CPU_MIN_PERCENT, CPU_MAX_PERCENT from information_schema.tp_admission_control_entities; + +enable_connect_log; + +connect (con, localhost, test_user,, test_db); +connect (con1, localhost, root,, test_db); + +# Default Values +eval $ac_entities_query; + +connection con1; + +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=0"; +eval $ac_entities_query; + +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=100"; +eval $ac_entities_query; + +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=20"; +eval $ac_entities_query; + +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=60"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=101"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "test_db max_percent=60"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_min_percent=-1"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "test_db cpu_max_percent=60 cpu_min_percent=10"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "__system__ cpu_min_percent=10"; +eval $ac_entities_query; + +--error 1231 +set @@global.thread_pool_tenant_resource_settings = "test_db3 cpu_max_percent=60"; +eval $ac_entities_query; + +disconnect con; +disconnect con1; +connection default; + +set @@global.thread_pool_tenant_resource_settings = DEFAULT; + +drop database test_db; +drop user test_user@localhost; +--source include/wait_until_count_sessions.inc