<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mariadb-git.git/sql/sql_repl.cc, branch 10.1-explain-json</title>
<subtitle>github.com: MariaDB/server.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/'/>
<entry>
<title>MDEV-5804: If same GTID is received on multiple master connections in multi-source replication, the event is double-executed causing corruption or replication failure</title>
<updated>2014-03-09T09:27:38+00:00</updated>
<author>
<name>unknown</name>
<email>knielsen@knielsen-hq.org</email>
</author>
<published>2014-03-09T09:27:38+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=2c2478b82260f5110ea2c5bed3c6c7bcd3558453'/>
<id>2c2478b82260f5110ea2c5bed3c6c7bcd3558453</id>
<content type='text'>
Before, the arrival of same GTID twice in multi-source replication
would cause double-apply or in gtid strict mode an error.

Keep the behaviour, but add an option --gtid-ignore-duplicates which
allows to correctly handle duplicates, ignoring all but the first.
This relies on the user ensuring correct configuration so that
sequence numbers are strictly increasing within each replication
domain; then duplicates can be detected simply by comparing the
sequence numbers against what is already applied.

Only one master connection (but possibly multiple parallel worker
threads within that connection) is allowed to apply events within
one replication domain at a time; any other connection that
receives a GTID in the same domain either discards it (if it is
already applied) or waits for the other connection to not have
any events to apply.

Intermediate patch, as proof-of-concept for testing. The main limitation
is that currently it is only implemented for parallel replication,
@@slave_parallel_threads &gt; 0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before, the arrival of same GTID twice in multi-source replication
would cause double-apply or in gtid strict mode an error.

Keep the behaviour, but add an option --gtid-ignore-duplicates which
allows to correctly handle duplicates, ignoring all but the first.
This relies on the user ensuring correct configuration so that
sequence numbers are strictly increasing within each replication
domain; then duplicates can be detected simply by comparing the
sequence numbers against what is already applied.

Only one master connection (but possibly multiple parallel worker
threads within that connection) is allowed to apply events within
one replication domain at a time; any other connection that
receives a GTID in the same domain either discards it (if it is
already applied) or waits for the other connection to not have
any events to apply.

Intermediate patch, as proof-of-concept for testing. The main limitation
is that currently it is only implemented for parallel replication,
@@slave_parallel_threads &gt; 0.
</pre>
</div>
</content>
</entry>
<entry>
<title>10.0-base merge</title>
<updated>2014-02-26T14:28:07+00:00</updated>
<author>
<name>Sergei Golubchik</name>
<email>sergii@pisem.net</email>
</author>
<published>2014-02-26T14:28:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=0dc23679c867629ded5f9534d2ab6e8edf238aa0'/>
<id>0dc23679c867629ded5f9534d2ab6e8edf238aa0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>5.5 merge</title>
<updated>2014-02-25T15:04:35+00:00</updated>
<author>
<name>Sergei Golubchik</name>
<email>sergii@pisem.net</email>
</author>
<published>2014-02-25T15:04:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=0b9a0a3517ca2b75655f3af5c372cf333d3d5fe2'/>
<id>0b9a0a3517ca2b75655f3af5c372cf333d3d5fe2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MySQL-5.5.36 merge</title>
<updated>2014-02-17T10:00:51+00:00</updated>
<author>
<name>Sergei Golubchik</name>
<email>sergii@pisem.net</email>
</author>
<published>2014-02-17T10:00:51+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=84651126c0f101ea762eec0eb4045f533a00e96d'/>
<id>84651126c0f101ea762eec0eb4045f533a00e96d</id>
<content type='text'>
(without few incorrect bugfixes and with 1250 files where only a copyright year was changed)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(without few incorrect bugfixes and with 1250 files where only a copyright year was changed)
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge MariaDB 10.0-base to 10.0.</title>
<updated>2014-02-10T14:12:17+00:00</updated>
<author>
<name>unknown</name>
<email>knielsen@knielsen-hq.org</email>
</author>
<published>2014-02-10T14:12:17+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=dd93ec5633c325748118ec8f23028715d1935820'/>
<id>dd93ec5633c325748118ec8f23028715d1935820</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-4984: Implement MASTER_GTID_WAIT() and @@LAST_GTID.</title>
<updated>2014-02-07T18:15:28+00:00</updated>
<author>
<name>unknown</name>
<email>knielsen@knielsen-hq.org</email>
</author>
<published>2014-02-07T18:15:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=4e6606acad4ad0ea75dec114ad316e0325efaf02'/>
<id>4e6606acad4ad0ea75dec114ad316e0325efaf02</id>
<content type='text'>
MASTER_GTID_WAIT() is similar to MASTER_POS_WAIT(), but works with a
GTID position rather than an old-style filename/offset.

@@LAST_GTID gives the GTID assigned to the last transaction written
into the binlog.

Together, the two can be used by applications to obtain the GTID of
an update on the master, and then do a MASTER_GTID_WAIT() for that
position on any read slave where it is important to get results that
are caught up with the master at least to the point of the update.

The implementation of MASTER_GTID_WAIT() is implemented in a way
that tries to minimise the performance impact on the SQL threads,
even in the presense of many waiters on single GTID positions (as
from @@LAST_GTID).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MASTER_GTID_WAIT() is similar to MASTER_POS_WAIT(), but works with a
GTID position rather than an old-style filename/offset.

@@LAST_GTID gives the GTID assigned to the last transaction written
into the binlog.

Together, the two can be used by applications to obtain the GTID of
an update on the master, and then do a MASTER_GTID_WAIT() for that
position on any read slave where it is important to get results that
are caught up with the master at least to the point of the update.

The implementation of MASTER_GTID_WAIT() is implemented in a way
that tries to minimise the performance impact on the SQL threads,
even in the presense of many waiters on single GTID positions (as
from @@LAST_GTID).
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix for MDEV-4117 @@global.relay_log_purge not per-master, conflicts between different masters in multisource replication</title>
<updated>2014-01-14T18:00:38+00:00</updated>
<author>
<name>Michael Widenius</name>
<email>monty@askmonty.org</email>
</author>
<published>2014-01-14T18:00:38+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=0a20d762af01ec835c9c4e6d02b77b9defad8647'/>
<id>0a20d762af01ec835c9c4e6d02b77b9defad8647</id>
<content type='text'>
The fix is to not change @relay_log_purge as part of the CHANGE MASTER.
(There is no logical reason why this is done in the current source)

mysql-test/suite/rpl/r/rpl_slave_status.result:
  Ensure that CHANGE MASTER doesn't change relay_log_purge
mysql-test/suite/rpl/t/rpl_slave_status.test:
  Ensure that CHANGE MASTER doesn't change relay_log_purge
sql/sql_repl.cc:
  Don't change relay_log_purge in CHANGE MASTER
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The fix is to not change @relay_log_purge as part of the CHANGE MASTER.
(There is no logical reason why this is done in the current source)

mysql-test/suite/rpl/r/rpl_slave_status.result:
  Ensure that CHANGE MASTER doesn't change relay_log_purge
mysql-test/suite/rpl/t/rpl_slave_status.test:
  Ensure that CHANGE MASTER doesn't change relay_log_purge
sql/sql_repl.cc:
  Don't change relay_log_purge in CHANGE MASTER
</pre>
</div>
</content>
</entry>
<entry>
<title>10.0-base merge</title>
<updated>2013-12-16T12:02:21+00:00</updated>
<author>
<name>Sergei Golubchik</name>
<email>sergii@pisem.net</email>
</author>
<published>2013-12-16T12:02:21+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=d28d3ba40dc8ebef87199a2567ec96e9c5d744e2'/>
<id>d28d3ba40dc8ebef87199a2567ec96e9c5d744e2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-5306: Missing locking around rpl_global_gtid_binlog_state</title>
<updated>2013-11-18T14:22:50+00:00</updated>
<author>
<name>unknown</name>
<email>knielsen@knielsen-hq.org</email>
</author>
<published>2013-11-18T14:22:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=170e9e593df52643653269a61efbdc35076a1190'/>
<id>170e9e593df52643653269a61efbdc35076a1190</id>
<content type='text'>
There were some places where insufficient locking between
parallel threads could cause invalid memory accesses and
possibly other grief.

This patch adds the missing locking, and moves the locking
into the struct rpl_binlog_state methods to make it easier
to see that proper locking is in place everywhere.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There were some places where insufficient locking between
parallel threads could cause invalid memory accesses and
possibly other grief.

This patch adds the missing locking, and moves the locking
into the struct rpl_binlog_state methods to make it easier
to see that proper locking is in place everywhere.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug#17641586 INCORRECTLY PRINTED BINLOG DUMP INFORMATION</title>
<updated>2013-11-12T16:39:10+00:00</updated>
<author>
<name>Venkatesh Duggirala</name>
<email>venkatesh.duggirala@oracle.com</email>
</author>
<published>2013-11-12T16:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=e0efc2c39a14337f9c3af03af1cec93d073e82f3'/>
<id>e0efc2c39a14337f9c3af03af1cec93d073e82f3</id>
<content type='text'>
Problem:
When log_warnings is greater than 1, master prints binlog
dump thread information in mysqld.1.err file.
The information contains slave server id, binlog file and
binlog position. The slave server id is uint32 and the print
format was wrongly specifified (%d instead of %u).
Hence a server id which is more than 2 billion is getting
printed with a negative value.
Eg: Start binlog_dump to slave_server(-1340259414),
pos(mysql-bin.001663, 325187493)

Fix: Changed the uint32 format to %u.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
When log_warnings is greater than 1, master prints binlog
dump thread information in mysqld.1.err file.
The information contains slave server id, binlog file and
binlog position. The slave server id is uint32 and the print
format was wrongly specifified (%d instead of %u).
Hence a server id which is more than 2 billion is getting
printed with a negative value.
Eg: Start binlog_dump to slave_server(-1340259414),
pos(mysql-bin.001663, 325187493)

Fix: Changed the uint32 format to %u.
</pre>
</div>
</content>
</entry>
</feed>
