summaryrefslogtreecommitdiff
path: root/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test')
-rw-r--r--mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test87
1 files changed, 62 insertions, 25 deletions
diff --git a/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test b/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
index 8680d62a36d..d04603891db 100644
--- a/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
+++ b/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
@@ -6,43 +6,78 @@
--source include/have_innodb.inc
--source include/big_test.inc
-# Create a second connection to node1 so that we can run transactions concurrently
+--connection node_1
+CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
+INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+
+CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
+
+# Create few connections to node1 so that we can run transactions concurrently
--let $galera_connection_name = node_1a
--let $galera_server_number = 1
--source include/galera_connect.inc
---connection node_1
-CREATE TABLE ten (f1 INTEGER);
-INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+--let $galera_connection_name = node_1b
+--let $galera_server_number = 1
+--source include/galera_connect.inc
-CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
--connection node_2
+set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
SET GLOBAL wsrep_slave_threads = 4;
+--let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
+--source include/wait_condition.inc
+
+--connection node_1
+DELIMITER |;
+CREATE PROCEDURE p1 (repeat_count int)
+BEGIN
+ DECLARE current_num int;
+ SET current_num = 0;
+ WHILE current_num < repeat_count do
+ INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
+ COMMIT;
+ SET current_num = current_num + 1;
+ END WHILE;
+END|
+DELIMITER ;|
+
+--disable_query_log
+send call p1(1000);
+
+--connection node_1a
+--disable_query_log
+send call p1(1000);
+
+--connection node_1b
+--disable_query_log
+send call p1(1000);
+
+--connection node_2
+--disable_query_log
+send call p1(1000);
--connection node_1
---let $count = 1000
-while ($count)
-{
- --disable_query_log
- INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
- --enable_query_log
- --dec $count
-}
+reap;
+--enable_query_log
+
+--connection node_1a
+reap;
+--enable_query_log
+
+--connection node_1b
+reap;
+--enable_query_log
--connection node_2
---let $count = 1000
-while ($count)
-{
- --disable_query_log
- INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1;
- --enable_query_log
- --dec $count
-}
-
-SELECT COUNT(*) = 20000 FROM t1;
-SELECT COUNT(DISTINCT f1) = 20000 FROM t1;
-SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%';
+reap;
+--enable_query_log
+
+SELECT COUNT(*) FROM t1;
+SELECT COUNT(DISTINCT f1) FROM t1;
+
+--disconnect node_1a
+--disconnect node_1b
--disable_query_log
--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig;
@@ -51,4 +86,6 @@ SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use
--connection default
DROP TABLE t1;
DROP TABLE ten;
+DROP PROCEDURE p1;
+