-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-16520 Out-Of-Memory running big aggregate query on Spider Engine
Change default value of the followings quick_mode 0 -> 3 quick_page_size 100 -> 1024 Add the following parameter for limiting result page size by byte - quick_page_byte(qpb) Number of bytes in a page when acquisition one by one. When quick_mode is 1 or 2, Spider stores at least 1 record even if quick_page_byte is smaller than 1 record. When quick_mode is 3, quick_page_byte is used for judging using temporary table. That is given to priority when server parameter spider_quick_page_byte is set. The default value is 10485760 Fix "out of sync" issue at using quick_mode = 1 or 2
- Loading branch information
Showing
33 changed files
with
3,816 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
storage/spider/mysql-test/spider/include/quick_mode_0_deinit.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP | ||
--let $MASTER_1_COMMENT_2_2= $MASTER_1_COMMENT_2_2_BACKUP | ||
--let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP | ||
--let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP | ||
--let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP | ||
--let $CHILD2_2_DROP_TABLES= $CHILD2_2_DROP_TABLES_BACKUP | ||
--let $CHILD2_2_CREATE_TABLES= $CHILD2_2_CREATE_TABLES_BACKUP | ||
--let $CHILD2_2_SELECT_TABLES= $CHILD2_2_SELECT_TABLES_BACKUP | ||
--let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
--let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
--connection master_1 | ||
set session spider_quick_mode= @old_spider_quick_mode; | ||
set session spider_quick_page_size= @old_spider_quick_page_size; | ||
set session spider_quick_page_byte= @old_spider_quick_page_byte; | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings |
55 changes: 55 additions & 0 deletions
55
storage/spider/mysql-test/spider/include/quick_mode_0_init.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_init.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings | ||
--let $MASTER_1_COMMENT_2_1_BACKUP= $MASTER_1_COMMENT_2_1 | ||
let $MASTER_1_COMMENT_2_1= | ||
COMMENT='table "tbl_a", srv "s_2_1"'; | ||
--let $MASTER_1_COMMENT_2_2_BACKUP= $MASTER_1_COMMENT_2_2 | ||
let $MASTER_1_COMMENT_2_2= | ||
COMMENT='table "tbl_b", srv "s_2_2"'; | ||
--let $CHILD2_1_DROP_TABLES_BACKUP= $CHILD2_1_DROP_TABLES | ||
let $CHILD2_1_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_a; | ||
--let $CHILD2_1_CREATE_TABLES_BACKUP= $CHILD2_1_CREATE_TABLES | ||
let $CHILD2_1_CREATE_TABLES= | ||
CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
--let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES | ||
let $CHILD2_1_SELECT_TABLES= | ||
SELECT pkey FROM tbl_a ORDER BY pkey; | ||
let $CHILD2_1_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $CHILD2_2_DROP_TABLES_BACKUP= $CHILD2_2_DROP_TABLES | ||
let $CHILD2_2_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_b; | ||
--let $CHILD2_2_CREATE_TABLES_BACKUP= $CHILD2_2_CREATE_TABLES | ||
let $CHILD2_2_CREATE_TABLES= | ||
CREATE TABLE tbl_b ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
--let $CHILD2_2_SELECT_TABLES_BACKUP= $CHILD2_2_SELECT_TABLES | ||
let $CHILD2_2_SELECT_TABLES= | ||
SELECT pkey FROM tbl_b ORDER BY pkey; | ||
let $CHILD2_2_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $OUTPUT_CHILD_GROUP2_BACKUP= $OUTPUT_CHILD_GROUP2 | ||
--let $OUTPUT_CHILD_GROUP2= 1 | ||
--let $USE_GENERAL_LOG_BACKUP= $USE_GENERAL_LOG | ||
--let $USE_GENERAL_LOG= 1 | ||
--connection master_1 | ||
set @old_spider_quick_mode= @@spider_quick_mode; | ||
set session spider_quick_mode= 0; | ||
set @old_spider_quick_page_size= @@spider_quick_page_size; | ||
set session spider_quick_page_size= 3; | ||
set @old_spider_quick_page_byte= @@spider_quick_page_byte; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_6= | ||
set session spider_quick_page_byte= 6; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_0= | ||
set session spider_quick_page_byte= 0; |
21 changes: 21 additions & 0 deletions
21
storage/spider/mysql-test/spider/include/quick_mode_1_deinit.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP | ||
--let $MASTER_1_COMMENT_2_2= $MASTER_1_COMMENT_2_2_BACKUP | ||
--let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP | ||
--let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP | ||
--let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP | ||
--let $CHILD2_2_DROP_TABLES= $CHILD2_2_DROP_TABLES_BACKUP | ||
--let $CHILD2_2_CREATE_TABLES= $CHILD2_2_CREATE_TABLES_BACKUP | ||
--let $CHILD2_2_SELECT_TABLES= $CHILD2_2_SELECT_TABLES_BACKUP | ||
--let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
--let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
--connection master_1 | ||
set session spider_quick_mode= @old_spider_quick_mode; | ||
set session spider_quick_page_size= @old_spider_quick_page_size; | ||
set session spider_quick_page_byte= @old_spider_quick_page_byte; | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings |
55 changes: 55 additions & 0 deletions
55
storage/spider/mysql-test/spider/include/quick_mode_1_init.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_init.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings | ||
--let $MASTER_1_COMMENT_2_1_BACKUP= $MASTER_1_COMMENT_2_1 | ||
let $MASTER_1_COMMENT_2_1= | ||
COMMENT='table "tbl_a", srv "s_2_1"'; | ||
--let $MASTER_1_COMMENT_2_2_BACKUP= $MASTER_1_COMMENT_2_2 | ||
let $MASTER_1_COMMENT_2_2= | ||
COMMENT='table "tbl_b", srv "s_2_2"'; | ||
--let $CHILD2_1_DROP_TABLES_BACKUP= $CHILD2_1_DROP_TABLES | ||
let $CHILD2_1_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_a; | ||
--let $CHILD2_1_CREATE_TABLES_BACKUP= $CHILD2_1_CREATE_TABLES | ||
let $CHILD2_1_CREATE_TABLES= | ||
CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
--let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES | ||
let $CHILD2_1_SELECT_TABLES= | ||
SELECT pkey FROM tbl_a ORDER BY pkey; | ||
let $CHILD2_1_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $CHILD2_2_DROP_TABLES_BACKUP= $CHILD2_2_DROP_TABLES | ||
let $CHILD2_2_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_b; | ||
--let $CHILD2_2_CREATE_TABLES_BACKUP= $CHILD2_2_CREATE_TABLES | ||
let $CHILD2_2_CREATE_TABLES= | ||
CREATE TABLE tbl_b ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
--let $CHILD2_2_SELECT_TABLES_BACKUP= $CHILD2_2_SELECT_TABLES | ||
let $CHILD2_2_SELECT_TABLES= | ||
SELECT pkey FROM tbl_b ORDER BY pkey; | ||
let $CHILD2_2_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $OUTPUT_CHILD_GROUP2_BACKUP= $OUTPUT_CHILD_GROUP2 | ||
--let $OUTPUT_CHILD_GROUP2= 1 | ||
--let $USE_GENERAL_LOG_BACKUP= $USE_GENERAL_LOG | ||
--let $USE_GENERAL_LOG= 1 | ||
--connection master_1 | ||
set @old_spider_quick_mode= @@spider_quick_mode; | ||
set session spider_quick_mode= 1; | ||
set @old_spider_quick_page_size= @@spider_quick_page_size; | ||
set session spider_quick_page_size= 3; | ||
set @old_spider_quick_page_byte= @@spider_quick_page_byte; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_6= | ||
set session spider_quick_page_byte= 6; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_0= | ||
set session spider_quick_page_byte= 0; |
21 changes: 21 additions & 0 deletions
21
storage/spider/mysql-test/spider/include/quick_mode_2_deinit.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP | ||
--let $MASTER_1_COMMENT_2_2= $MASTER_1_COMMENT_2_2_BACKUP | ||
--let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP | ||
--let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP | ||
--let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP | ||
--let $CHILD2_2_DROP_TABLES= $CHILD2_2_DROP_TABLES_BACKUP | ||
--let $CHILD2_2_CREATE_TABLES= $CHILD2_2_CREATE_TABLES_BACKUP | ||
--let $CHILD2_2_SELECT_TABLES= $CHILD2_2_SELECT_TABLES_BACKUP | ||
--let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
--let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
--connection master_1 | ||
set session spider_quick_mode= @old_spider_quick_mode; | ||
set session spider_quick_page_size= @old_spider_quick_page_size; | ||
set session spider_quick_page_byte= @old_spider_quick_page_byte; | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings |
55 changes: 55 additions & 0 deletions
55
storage/spider/mysql-test/spider/include/quick_mode_2_init.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_init.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings | ||
--let $MASTER_1_COMMENT_2_1_BACKUP= $MASTER_1_COMMENT_2_1 | ||
let $MASTER_1_COMMENT_2_1= | ||
COMMENT='table "tbl_a", srv "s_2_1"'; | ||
--let $MASTER_1_COMMENT_2_2_BACKUP= $MASTER_1_COMMENT_2_2 | ||
let $MASTER_1_COMMENT_2_2= | ||
COMMENT='table "tbl_b", srv "s_2_2"'; | ||
--let $CHILD2_1_DROP_TABLES_BACKUP= $CHILD2_1_DROP_TABLES | ||
let $CHILD2_1_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_a; | ||
--let $CHILD2_1_CREATE_TABLES_BACKUP= $CHILD2_1_CREATE_TABLES | ||
let $CHILD2_1_CREATE_TABLES= | ||
CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
--let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES | ||
let $CHILD2_1_SELECT_TABLES= | ||
SELECT pkey FROM tbl_a ORDER BY pkey; | ||
let $CHILD2_1_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $CHILD2_2_DROP_TABLES_BACKUP= $CHILD2_2_DROP_TABLES | ||
let $CHILD2_2_DROP_TABLES= | ||
DROP TABLE IF EXISTS tbl_b; | ||
--let $CHILD2_2_CREATE_TABLES_BACKUP= $CHILD2_2_CREATE_TABLES | ||
let $CHILD2_2_CREATE_TABLES= | ||
CREATE TABLE tbl_b ( | ||
pkey int NOT NULL, | ||
PRIMARY KEY (pkey) | ||
) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
--let $CHILD2_2_SELECT_TABLES_BACKUP= $CHILD2_2_SELECT_TABLES | ||
let $CHILD2_2_SELECT_TABLES= | ||
SELECT pkey FROM tbl_b ORDER BY pkey; | ||
let $CHILD2_2_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--let $OUTPUT_CHILD_GROUP2_BACKUP= $OUTPUT_CHILD_GROUP2 | ||
--let $OUTPUT_CHILD_GROUP2= 1 | ||
--let $USE_GENERAL_LOG_BACKUP= $USE_GENERAL_LOG | ||
--let $USE_GENERAL_LOG= 1 | ||
--connection master_1 | ||
set @old_spider_quick_mode= @@spider_quick_mode; | ||
set session spider_quick_mode= 2; | ||
set @old_spider_quick_page_size= @@spider_quick_page_size; | ||
set session spider_quick_page_size= 3; | ||
set @old_spider_quick_page_byte= @@spider_quick_page_byte; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_6= | ||
set session spider_quick_page_byte= 6; | ||
let $MASTER_1_SET_QUICK_PAGE_BYTE_0= | ||
set session spider_quick_page_byte= 0; |
21 changes: 21 additions & 0 deletions
21
storage/spider/mysql-test/spider/include/quick_mode_3_deinit.inc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP | ||
--let $MASTER_1_COMMENT_2_2= $MASTER_1_COMMENT_2_2_BACKUP | ||
--let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP | ||
--let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP | ||
--let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP | ||
--let $CHILD2_2_DROP_TABLES= $CHILD2_2_DROP_TABLES_BACKUP | ||
--let $CHILD2_2_CREATE_TABLES= $CHILD2_2_CREATE_TABLES_BACKUP | ||
--let $CHILD2_2_SELECT_TABLES= $CHILD2_2_SELECT_TABLES_BACKUP | ||
--let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
--let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
--connection master_1 | ||
set session spider_quick_mode= @old_spider_quick_mode; | ||
set session spider_quick_page_size= @old_spider_quick_page_size; | ||
set session spider_quick_page_byte= @old_spider_quick_page_byte; | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings |
Oops, something went wrong.