Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
I'm not sure if it's a bug, maybe it's supposed to work this way, but it surely looks strange, so I'll file it and leave it to you to decide
When a slave is actively replicating, most of the time @@gtid_current_pos and @@gtid_slave_pos appear to be empty. No special flow seems to be necessary, just regular DML would suffice. For example, the test below performs a thousand of inserts on master while checking the values on the slave at the same time. Here is a typical extract from the output:
Variable_name Value
|
gtid_binlog_pos 0-1-513
|
gtid_current_pos
|
gtid_slave_pos
|
Variable_name Value
|
gtid_binlog_pos 0-1-523
|
gtid_current_pos
|
gtid_slave_pos
|
Variable_name Value
|
gtid_binlog_pos 0-1-530
|
gtid_current_pos 0-1-530
|
gtid_slave_pos 0-1-530
|
Variable_name Value
|
gtid_binlog_pos 0-1-540
|
gtid_current_pos
|
gtid_slave_pos
|
Variable_name Value
|
gtid_binlog_pos 0-1-548
|
gtid_current_pos
|
gtid_slave_pos
|
Variable_name Value
|
gtid_binlog_pos 0-1-559
|
gtid_current_pos
|
gtid_slave_pos
|
If instead of a number of small statements I execute one very big statement, the effect can still be observed, but the empty values only appear during a small fraction of time. So, I presume the "empty phase" has somewhat flat duration per an event group, regardless its size.
Test case:
--source include/master-slave.inc
|
--source include/have_innodb.inc
|
--source include/have_binlog_format_row.inc
|
|
--connection slave
|
--source include/stop_slave.inc
|
change master to master_use_gtid=current_pos; |
--source include/start_slave.inc
|
|
--connection master
|
create table t1 (i int, c varchar(8)) engine=InnoDB; |
|
--delimiter |
|
create procedure p(n int) |
begin
|
while n > 0 do
|
insert into t1 values (1,'test1'),(2,'test2'),(3,'test3'),(4,'test4'); |
set n = n - 1; |
end while; |
end| |
--delimiter ;
|
|
send call p(1000);
|
|
--connection slave
|
|
let $run = 100;
|
|
--disable_query_log
|
while ($run)
|
{
|
SHOW VARIABLES LIKE 'gtid%pos'; |
--sleep 1 |
dec $run; |
}
|
|
--connection master
|
--reap
|
drop table t1; |
drop procedure p; |
|
--sync_slave_with_master
|
|
--connection master
|
--source include/rpl_end.inc
|
bzr version-info
revision-id: sergii@pisem.net-20130610064025-makoe3xkewwwky8j
|
revno: 3761
|
branch-nick: 10.0
|
Attachments
Issue Links
- relates to
-
MDEV-26 Global transaction ID
- Closed