233 lines
7.9 KiB
Plaintext
233 lines
7.9 KiB
Plaintext
SET @saved_parallel_read_threads = @@global.xengine_parallel_read_threads;
|
|
SET @saved_sort_buffer_size = @@global.xengine_sort_buffer_size;
|
|
SELECT @@global.xengine_parallel_read_threads;
|
|
@@global.xengine_parallel_read_threads
|
|
4
|
|
SELECT @@global.xengine_sort_buffer_size;
|
|
@@global.xengine_sort_buffer_size
|
|
4194304
|
|
SET xengine_parallel_read_threads=4;
|
|
SET global xengine_sort_buffer_size=64*1024;
|
|
Test interrupt during merge when build base
|
|
###################################################################
|
|
# case 1.1: check local merge interrupt
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET SESSION DEBUG="+d,crash_during_local_merge";
|
|
SET DEBUG_SYNC= 'xengine.local_merge_interrupted SIGNAL interrupted';
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
# Switch to connection dml
|
|
SET DEBUG_SYNC= 'now WAIT_FOR interrupted';
|
|
# Switch to connection default
|
|
ERROR HY000: Unknown error
|
|
SET SESSION debug="-d,crash_during_local_merge";
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
###################################################################
|
|
# case 1.2: check global merge interrupt
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET SESSION DEBUG="+d,crash_during_global_merge";
|
|
SET DEBUG_SYNC= 'xengine.global_merge_interrupted SIGNAL interrupted';
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
# Switch to connection dml
|
|
SET DEBUG_SYNC= 'now WAIT_FOR interrupted';
|
|
# Switch to connection default
|
|
ERROR HY000: Unknown error
|
|
SET SESSION debug="-d,crash_during_global_merge";
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
###################################################################
|
|
# case 2: dml unique check don't print err in child thread
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET DEBUG_SYNC= 'xengine.build_base_global_merge_start SIGNAL start_dml WAIT_FOR dml_done';
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
# Switch to connection dml
|
|
SET DEBUG_SYNC= 'now WAIT_FOR start_dml';
|
|
begin;
|
|
INSERT INTO t1 VALUES(1005, repeat('1', 128));
|
|
INSERT INTO t1 VALUES(1005, repeat('1', 128));
|
|
commit;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_done';
|
|
# Switch to connection default
|
|
ERROR 23000: Duplicate entry '1005' for key 'PRIMARY'
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
failed to add primary key
|
|
DROP TABLE t1;
|
|
###################################################################
|
|
# case 3: test for thread from 1 to 64 for data size 1000
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760), PRIMARY KEY(a))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET xengine_parallel_read_threads=1;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=2;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=4;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=8;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=16;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=32;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=64;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
###################################################################
|
|
# case 4: test for thread from 1 to 64 for data size 10
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760), PRIMARY KEY(a))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET xengine_parallel_read_threads=1;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=2;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=4;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=8;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=16;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=32;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
SET xengine_parallel_read_threads=64;
|
|
ALTER TABLE t1 DROP PRIMARY KEY;
|
|
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
###################################################################
|
|
# case 5: index is already sorted
|
|
###################################################################
|
|
CREATE TABLE t1(a INT NOT NULL, b TEXT(10485760), PRIMARY KEY(a))ENGINE=XENGINE;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL,
|
|
`b` longtext COLLATE utf8mb4_general_ci,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=XENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
|
SET xengine_parallel_read_threads=4;
|
|
ALTER TABLE t1 ADD INDEX a_1(a);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
DROP TABLE t1;
|
|
SET @@global.xengine_parallel_read_threads=@saved_parallel_read_threads;
|
|
SET @@global.xengine_sort_buffer_size=@saved_sort_buffer_size;
|
|
SELECT @@global.xengine_parallel_read_threads;
|
|
@@global.xengine_parallel_read_threads
|
|
4
|
|
SELECT @@global.xengine_sort_buffer_size;
|
|
@@global.xengine_sort_buffer_size
|
|
4194304
|