Skip to content

Commit 9b57752

Browse files
dutowinikep
authored andcommitted
FB8-87, FB8-119: Supporting dynamic scheduling in MTS (facebook#999) (facebook#999)
Summary: Jira ticket: https://jira.percona.com/browse/FB8-87 Jira ticket: https://jira.percona.com/browse/FB8-119 Reference commit: facebook@5846968 Reference commit: facebook@d6217c9 Statically assigning shards to slave workers can cause imbalance if a few shards are hotter than others. We should be able to check the imbalance among slave workers and dynamically reassign shards. Pull Request resolved: facebook#999 Differential Revision: D14883857
1 parent 78e8b39 commit 9b57752

26 files changed

+496
-6
lines changed

mysql-test/r/dd_is_compatibility_ci.result

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ ROUTINES
201201
SCHEMATA
202202
SCHEMATA_EXTENSIONS
203203
SCHEMA_PRIVILEGES
204+
SLAVE_DB_LOAD
204205
STATISTICS
205206
ST_GEOMETRY_COLUMNS
206207
ST_SPATIAL_REFERENCE_SYSTEMS

mysql-test/r/dd_is_compatibility_cs.result

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ ROUTINES
202202
SCHEMATA
203203
SCHEMATA_EXTENSIONS
204204
SCHEMA_PRIVILEGES
205+
SLAVE_DB_LOAD
205206
STATISTICS
206207
ST_GEOMETRY_COLUMNS
207208
ST_SPATIAL_REFERENCE_SYSTEMS

mysql-test/r/information_schema_ci.result

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ ROUTINES
9494
SCHEMATA
9595
SCHEMATA_EXTENSIONS
9696
SCHEMA_PRIVILEGES
97+
SLAVE_DB_LOAD
9798
STATISTICS
9899
ST_GEOMETRY_COLUMNS
99100
ST_SPATIAL_REFERENCE_SYSTEMS
@@ -896,7 +897,7 @@ table_schema IN ('mysql', 'information_schema', 'test', 'mysqltest')
896897
AND table_name not like 'ndb%' AND table_name COLLATE utf8_general_ci not like 'innodb_%'
897898
GROUP BY TABLE_SCHEMA;
898899
TABLE_SCHEMA count(*)
899-
information_schema 50
900+
information_schema 51
900901
mysql 35
901902
create table t1 (i int, j int);
902903
create trigger trg1 before insert on t1 for each row
@@ -1378,6 +1379,7 @@ ROUTINES information_schema.ROUTINES 1
13781379
SCHEMATA information_schema.SCHEMATA 1
13791380
SCHEMATA_EXTENSIONS information_schema.SCHEMATA_EXTENSIONS 1
13801381
SCHEMA_PRIVILEGES information_schema.SCHEMA_PRIVILEGES 1
1382+
SLAVE_DB_LOAD information_schema.SLAVE_DB_LOAD 1
13811383
STATISTICS information_schema.STATISTICS 1
13821384
ST_GEOMETRY_COLUMNS information_schema.ST_GEOMETRY_COLUMNS 1
13831385
ST_SPATIAL_REFERENCE_SYSTEMS information_schema.ST_SPATIAL_REFERENCE_SYSTEMS 1
@@ -2522,6 +2524,7 @@ ROUTINES ROUTINE_SCHEMA
25222524
SCHEMATA SCHEMA_NAME
25232525
SCHEMATA_EXTENSIONS SCHEMA_NAME
25242526
SCHEMA_PRIVILEGES TABLE_SCHEMA
2527+
SLAVE_DB_LOAD DB
25252528
STATISTICS TABLE_SCHEMA
25262529
ST_GEOMETRY_COLUMNS TABLE_SCHEMA
25272530
ST_SPATIAL_REFERENCE_SYSTEMS SRS_NAME
@@ -2592,6 +2595,7 @@ ROUTINES ROUTINE_SCHEMA
25922595
SCHEMATA SCHEMA_NAME
25932596
SCHEMATA_EXTENSIONS SCHEMA_NAME
25942597
SCHEMA_PRIVILEGES TABLE_SCHEMA
2598+
SLAVE_DB_LOAD DB
25952599
STATISTICS TABLE_SCHEMA
25962600
ST_GEOMETRY_COLUMNS TABLE_SCHEMA
25972601
ST_SPATIAL_REFERENCE_SYSTEMS SRS_NAME

mysql-test/r/information_schema_cs.result

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ ROUTINES
9494
SCHEMATA
9595
SCHEMATA_EXTENSIONS
9696
SCHEMA_PRIVILEGES
97+
SLAVE_DB_LOAD
9798
STATISTICS
9899
ST_GEOMETRY_COLUMNS
99100
ST_SPATIAL_REFERENCE_SYSTEMS
@@ -900,7 +901,7 @@ AND table_name COLLATE utf8mb3_general_ci not like 'innodb_%'
900901
AND table_name COLLATE utf8mb3_general_ci not like 'rocksdb_%'
901902
GROUP BY TABLE_SCHEMA;
902903
TABLE_SCHEMA count(*)
903-
information_schema 50
904+
information_schema 51
904905
mysql 35
905906
create table t1 (i int, j int);
906907
create trigger trg1 before insert on t1 for each row
@@ -1383,6 +1384,7 @@ ROUTINES information_schema.ROUTINES 1
13831384
SCHEMATA information_schema.SCHEMATA 1
13841385
SCHEMATA_EXTENSIONS information_schema.SCHEMATA_EXTENSIONS 1
13851386
SCHEMA_PRIVILEGES information_schema.SCHEMA_PRIVILEGES 1
1387+
SLAVE_DB_LOAD information_schema.SLAVE_DB_LOAD 1
13861388
STATISTICS information_schema.STATISTICS 1
13871389
ST_GEOMETRY_COLUMNS information_schema.ST_GEOMETRY_COLUMNS 1
13881390
ST_SPATIAL_REFERENCE_SYSTEMS information_schema.ST_SPATIAL_REFERENCE_SYSTEMS 1
@@ -2527,6 +2529,7 @@ ROUTINES ROUTINE_SCHEMA
25272529
SCHEMATA SCHEMA_NAME
25282530
SCHEMATA_EXTENSIONS SCHEMA_NAME
25292531
SCHEMA_PRIVILEGES TABLE_SCHEMA
2532+
SLAVE_DB_LOAD DB
25302533
STATISTICS TABLE_SCHEMA
25312534
ST_GEOMETRY_COLUMNS TABLE_SCHEMA
25322535
ST_SPATIAL_REFERENCE_SYSTEMS SRS_NAME
@@ -2597,6 +2600,7 @@ ROUTINES ROUTINE_SCHEMA
25972600
SCHEMATA SCHEMA_NAME
25982601
SCHEMATA_EXTENSIONS SCHEMA_NAME
25992602
SCHEMA_PRIVILEGES TABLE_SCHEMA
2603+
SLAVE_DB_LOAD DB
26002604
STATISTICS TABLE_SCHEMA
26012605
ST_GEOMETRY_COLUMNS TABLE_SCHEMA
26022606
ST_SPATIAL_REFERENCE_SYSTEMS SRS_NAME

mysql-test/r/mysqld--help-notwin.result

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,13 @@ The following options may be given as the first argument:
739739
--min-examined-row-limit=#
740740
Don't write queries to slow log that examine fewer rows
741741
than that
742+
--mts-dynamic-rebalance
743+
Shuffle DB's within workers periodically for load
744+
balancing
745+
--mts-imbalance-threshold[=#]
746+
Threshold to trigger worker thread rebalancing. This
747+
parameter denotes the percent load on the most loaded
748+
worker.
742749
--myisam-block-size=#
743750
Block size to be used for MyISAM index pages
744751
--myisam-data-pointer-size=#
@@ -2475,6 +2482,8 @@ max-user-connections 0
24752482
max-write-lock-count 18446744073709551615
24762483
memlock FALSE
24772484
min-examined-row-limit 0
2485+
mts-dynamic-rebalance FALSE
2486+
mts-imbalance-threshold 90
24782487
myisam-block-size 1024
24792488
myisam-data-pointer-size 6
24802489
myisam-max-sort-file-size 9223372036853727232

mysql-test/r/mysqlshow_ci.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ Database: information_schema
158158
| SCHEMA_PRIVILEGES |
159159
| SCHEMATA |
160160
| SCHEMATA_EXTENSIONS |
161+
| SLAVE_DB_LOAD |
161162
| ST_GEOMETRY_COLUMNS |
162163
| ST_SPATIAL_REFERENCE_SYSTEMS |
163164
| ST_UNITS_OF_MEASURE |
@@ -259,6 +260,7 @@ Database: INFORMATION_SCHEMA
259260
| SCHEMA_PRIVILEGES |
260261
| SCHEMATA |
261262
| SCHEMATA_EXTENSIONS |
263+
| SLAVE_DB_LOAD |
262264
| ST_GEOMETRY_COLUMNS |
263265
| ST_SPATIAL_REFERENCE_SYSTEMS |
264266
| ST_UNITS_OF_MEASURE |

mysql-test/r/mysqlshow_cs.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ Database: information_schema
159159
| SCHEMATA |
160160
| SCHEMATA_EXTENSIONS |
161161
| SCHEMA_PRIVILEGES |
162+
| SLAVE_DB_LOAD |
162163
| STATISTICS |
163164
| ST_GEOMETRY_COLUMNS |
164165
| ST_SPATIAL_REFERENCE_SYSTEMS |
@@ -261,6 +262,7 @@ Database: INFORMATION_SCHEMA
261262
| SCHEMATA |
262263
| SCHEMATA_EXTENSIONS |
263264
| SCHEMA_PRIVILEGES |
265+
| SLAVE_DB_LOAD |
264266
| STATISTICS |
265267
| ST_GEOMETRY_COLUMNS |
266268
| ST_SPATIAL_REFERENCE_SYSTEMS |

mysql-test/suite/funcs_1/r/is_columns_is_cs.result

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,9 @@ def information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NO varchar 170 512 NUL
442442
def information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 21 64 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) select NULL
443443
def information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 21 64 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) select NULL
444444
def information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 1 3 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(3) select NULL
445+
def information_schema SLAVE_DB_LOAD DB 1 NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(192) select NULL
446+
def information_schema SLAVE_DB_LOAD WORKER 2 NO bigint NULL NULL NULL NULL NULL NULL NULL bigint unsigned select NULL
447+
def information_schema SLAVE_DB_LOAD DB_LOAD 3 NO bigint NULL NULL NULL NULL NULL NULL NULL bigint unsigned select NULL
445448
def information_schema STATISTICS TABLE_CATALOG 1 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin varchar(64) select NULL
446449
def information_schema STATISTICS TABLE_SCHEMA 2 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin varchar(64) select NULL
447450
def information_schema STATISTICS TABLE_NAME 3 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_bin varchar(64) select NULL
@@ -1113,6 +1116,9 @@ NULL information_schema SCHEMATA SQL_PATH binary 0 0 NULL NULL binary(0)
11131116
3.0476 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 21 64 utf8mb3 utf8mb3_general_ci varchar(64)
11141117
3.0476 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 21 64 utf8mb3 utf8mb3_general_ci varchar(64)
11151118
3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 1 3 utf8mb3 utf8mb3_general_ci varchar(3)
1119+
3.0000 information_schema SLAVE_DB_LOAD DB varchar 64 192 utf8mb3 utf8mb3_general_ci varchar(192)
1120+
NULL information_schema SLAVE_DB_LOAD WORKER bigint NULL NULL NULL NULL bigint unsigned
1121+
NULL information_schema SLAVE_DB_LOAD DB_LOAD bigint NULL NULL NULL NULL bigint unsigned
11161122
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 64 192 utf8mb3 utf8mb3_bin varchar(64)
11171123
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8mb3 utf8mb3_bin varchar(64)
11181124
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8mb3 utf8mb3_bin varchar(64)

mysql-test/suite/funcs_1/r/is_tables_is.result

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,29 @@ user_comment
754754
Separator -----------------------------------------------------
755755
TABLE_CATALOG def
756756
TABLE_SCHEMA information_schema
757+
TABLE_NAME SLAVE_DB_LOAD
758+
TABLE_TYPE SYSTEM VIEW
759+
ENGINE NULL
760+
VERSION 10
761+
ROW_FORMAT NULL
762+
TABLE_ROWS #TBLR#
763+
AVG_ROW_LENGTH #ARL#
764+
DATA_LENGTH #DL#
765+
MAX_DATA_LENGTH #MDL#
766+
INDEX_LENGTH #IL#
767+
DATA_FREE #DF#
768+
AUTO_INCREMENT #AI#
769+
CREATE_TIME #CRT#
770+
UPDATE_TIME #UT#
771+
CHECK_TIME #CT#
772+
TABLE_COLLATION NULL
773+
CHECKSUM NULL
774+
CREATE_OPTIONS #CO#
775+
TABLE_COMMENT #TC#
776+
user_comment
777+
Separator -----------------------------------------------------
778+
TABLE_CATALOG def
779+
TABLE_SCHEMA information_schema
757780
TABLE_NAME STATISTICS
758781
TABLE_TYPE SYSTEM VIEW
759782
ENGINE NULL
@@ -1901,6 +1924,29 @@ user_comment
19011924
Separator -----------------------------------------------------
19021925
TABLE_CATALOG def
19031926
TABLE_SCHEMA information_schema
1927+
TABLE_NAME SLAVE_DB_LOAD
1928+
TABLE_TYPE SYSTEM VIEW
1929+
ENGINE NULL
1930+
VERSION 10
1931+
ROW_FORMAT NULL
1932+
TABLE_ROWS #TBLR#
1933+
AVG_ROW_LENGTH #ARL#
1934+
DATA_LENGTH #DL#
1935+
MAX_DATA_LENGTH #MDL#
1936+
INDEX_LENGTH #IL#
1937+
DATA_FREE #DF#
1938+
AUTO_INCREMENT #AI#
1939+
CREATE_TIME #CRT#
1940+
UPDATE_TIME #UT#
1941+
CHECK_TIME #CT#
1942+
TABLE_COLLATION NULL
1943+
CHECKSUM NULL
1944+
CREATE_OPTIONS #CO#
1945+
TABLE_COMMENT #TC#
1946+
user_comment
1947+
Separator -----------------------------------------------------
1948+
TABLE_CATALOG def
1949+
TABLE_SCHEMA information_schema
19041950
TABLE_NAME STATISTICS
19051951
TABLE_TYPE SYSTEM VIEW
19061952
ENGINE NULL

mysql-test/suite/information_schema/r/information_schema_db.result

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ ROUTINES
5555
SCHEMATA
5656
SCHEMATA_EXTENSIONS
5757
SCHEMA_PRIVILEGES
58+
SLAVE_DB_LOAD
5859
STATISTICS
5960
ST_GEOMETRY_COLUMNS
6061
ST_SPATIAL_REFERENCE_SYSTEMS

0 commit comments

Comments
 (0)