summaryrefslogtreecommitdiff
path: root/storage/myisammrg
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2013-11-06 14:51:06 +0100
committerunknown <knielsen@knielsen-hq.org>2013-11-06 14:51:06 +0100
commitdcb3650d6305483c002477804c57162c466ce397 (patch)
tree4f3fd9648a894cbcd6afc4af020d75c272e50859 /storage/myisammrg
parentc90f4f02124ad0b675b541d7298627506d298ffa (diff)
downloadmariadb-git-dcb3650d6305483c002477804c57162c466ce397.tar.gz
MDEV-4506: Parallel replication
MDEV-5217: Incorrect MyISAM event execution order causing incorrect parallel replication In parallel replication, if transactions A,B group-commit together on the master, we can execute them in parallel on a replication slave. But then, if transaction C follows on the master, on the slave, we need to be sure that both A and B have completed before starting on C to be sure to avoid conflicts. The necessary wait is implemented such that B waits for A to commit before it commits itself (thus preserving commit order). And C waits for B to commit before it itself can start executing. This way C does not start until both A and B have completed. The wait for B's commit on A happens inside the commit processing. However, in the case of MyISAM with no binlog enabled on the slave, it appears that no commit processing takes place (since MyISAM is non-transactional), and thus the wait of B for A was not done. This allowed C to start before A, which can lead to conflicts and incorrect replication. Fixed by doing an extra wait for A at the end of B before signalling C.
Diffstat (limited to 'storage/myisammrg')
0 files changed, 0 insertions, 0 deletions