<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andrew Morgan's MySQL Cluster Database Blog &#187; MySQL Cluster CGE</title>
	<atom:link href="http://www.clusterdb.com/tag/mysql-cluster-cge/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clusterdb.com</link>
	<description>MySQL Cluster database &#38; MySQL Replication</description>
	<lastBuildDate>Wed, 01 Feb 2012 18:35:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Cluster 7.1.19 is available to download</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-is-available-to-download/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-7-1-9-is-available-to-download</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-is-available-to-download/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 15:04:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.1]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=2200</guid>
		<description><![CDATA[The binary version for MySQL Cluster 7.1.19 has now been made available at http://www.mysql.com/downloads/cluster/ (GPL version) or https://support.oracle.com/ (commercial version) A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.19 (compared to 7.1.18) will appear in the 7.1.19 Change log.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png"><img class="alignright size-full  wp-image-919" title="mysql-cluster-logo-150x105" src="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png" alt="" width="150" height="105" /></a> The binary version for MySQL Cluster 7.1.19 has now been made available at <a href="http://www.mysql.com/downloads/cluster/" target="_blank">http://www.mysql.com/downloads/cluster/</a> (GPL version) or <a href="https://support.oracle.com/" target="_blank">https://support.oracle.com/</a> (commercial version)</p>
<p>A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.19 (compared to 7.1.18) will appear in the <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-56-ndb-7-1-19.html" target="_blank">7.1.19 Change log</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-is-available-to-download/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enhanced conflict resolution with MySQL Cluster active-active replication</title>
		<link>http://www.clusterdb.com/mysql-cluster/enhanced-conflict-resolution-with-mysql-cluster-active-active-replication/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=enhanced-conflict-resolution-with-mysql-cluster-active-active-replication</link>
		<comments>http://www.clusterdb.com/mysql-cluster/enhanced-conflict-resolution-with-mysql-cluster-active-active-replication/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 20:09:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.2]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>
		<category><![CDATA[MySQL Replication]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=2141</guid>
		<description><![CDATA[Part of the latest MySQL Cluster Development Milestone Release (MySQL Cluster 7.2.1 &#8211; select the &#8220;Development Release&#8221; tab at http://dev.mysql.com/downloads/cluster/#downloads) is a couple of enhancements to the conflict detection and resolution mechanism for active-active (multi-master) replication. While MySQL Cluster has had conflict detection for years it has now been made much more complete and a [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2152" class="wp-caption alignright" style="width: 309px"><a href="http://www.clusterdb.com/wp-content/uploads/2011/11/ReflectingGCI_small.gif"><img class="size-full wp-image-2152" title="ReflectingGCI_small" src="http://www.clusterdb.com/wp-content/uploads/2011/11/ReflectingGCI_small.gif" alt="" width="299" height="231" /></a><p class="wp-caption-text">Detecting conflicts</p></div>
<p>Part of the latest MySQL Cluster Development Milestone Release (MySQL Cluster 7.2.1 &#8211; select the &#8220;Development Release&#8221; tab at <a title="MySQL Cluster downloads" href="http://dev.mysql.com/downloads/cluster/#downloads" target="_new">http://dev.mysql.com/downloads/cluster/#downloads</a>) is a couple of enhancements to the conflict detection and resolution mechanism for active-active (multi-master) replication. While MySQL Cluster has had conflict detection for years it has now been made much more complete and a lot easier to use:</p>
<ul>
<li>No changes needed to the application schema</li>
<li>Entire conflicting transaction is rolled back together with any dependent transactions</li>
</ul>
<p>The focus of this post will be to step through how to use this feature &#8211; while it will also attempt to explain how it works at a high level, you should refer to the following posts for the design details and philosophy: <a title="Eventual consistency with MySQL" href="http://messagepassing.blogspot.com/2011/10/eventual-consistency-with-mysql.html" target="_new">Eventual consistency with MySQL</a> &amp; <a title="MySQL Clsuter, Eventual Consistency - detecting conflicts" href="http://messagepassing.blogspot.com/2011/10/eventual-consistency-detecting.html" target="_new">Eventual Consistency &#8211; detecting conflicts</a>.</p>
<h2>What is a conflict?</h2>
<p>MySQL Cluster allows bi-directional replication between two (or more) clusters. Replication within each cluster is synchronous but between clusters it is asynchronous which means the following scenario is possible:</p>
<table summary="Active-Active asynchronous replication can lead to inconsistencies between databases" width="260" border="1" align="center">
<caption align="center">Conflict with asynchronous replication</caption>
<tbody>
<tr>
<th scope="col" align="center" width="80">Site A</th>
<th scope="col" align="center" width="100">Replication</th>
<th scope="col" align="center" width="80">Site B</th>
</tr>
<tr>
<td align="center">x == 10</td>
<td></td>
<td align="center">x == 10</td>
</tr>
<tr>
<td align="center">x = 11</td>
<td></td>
<td align="center">x = 20</td>
</tr>
<tr>
<td></td>
<td align="center">&#8211; x=11 &#8211;&gt;</td>
<td align="center">x == 11</td>
</tr>
<tr>
<td align="center">x==20</td>
<td align="center">&lt;&#8211; x=20 &#8211;</td>
<td></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>In this example a value (column for a row in a table) is set to 11 on site A and the change is queued for replication to site B. In the mean time, an application sets the value to 20 on site B and that change is queued for replication to site A. Once both sites have received and applied the replicated change from the other cluster site A contains the value 20 while site B contains 11 &#8211; in other words the databases are now inconsistent.</p>
<h2>How MySQL Cluster 7.2 implements eventual consistency</h2>
<p>There are two phases to establishing consistency between both clusters after an inconsistency has been introduced:</p>
<ol>
<li>Detect that a conflict has happened</li>
<li>Resolve the inconsistency</li>
</ol>
<h3>Detecting the conflict</h3>
<p>The following animation illustrates how MySQL Cluster 7.2 detects that an inconsistency has been introduced by the asynchronous, active-active replication:</p>
<div id="attachment_2149" class="wp-caption alignnone" style="width: 610px"><a href="http://www.clusterdb.com/wp-content/uploads/2011/11/ReflectingGCI1.gif"><img class="size-full wp-image-2149" title="ReflectingGCI" src="http://www.clusterdb.com/wp-content/uploads/2011/11/ReflectingGCI1.gif" alt="" width="600" height="463" /></a><p class="wp-caption-text">Detecting conflicts</p></div>
<p>While we typically consider the 2 clusters in an active-active replication configuration to be peers, in this case we designate one to be the primary and the other the secondary. Reads and writes can still be sent to either cluster but it is the responsibility of the primary to identify that a conflict has arisen and then remove the inconsistency.</p>
<p>A logical clock is used to identify (in relative terms) when a change is made on the primary &#8211; for those who know something of the MySQL Cluster internals, we use the index of the Global Checkpoint that the update is contained in. For all tables that have this feature turned on, an extra, hidden column is automatically added on the primary &#8211; this represents the value of the logical clock when the change was made.</p>
<p>Once the change has been applied on the primary, there is a &#8220;window of conflict&#8221; for the effected row(s) during which if a different change is made to the same row(s) on the secondary then there will be an inconsistency. Once the slave on the secondary has applied the change from the primary, it will send a replication event back to the slave on the primary, containing the primary&#8217;s clock value associated with the changes that have just been applied on the secondary. (Remember that the clock is actually the Global Checkpoint Index and so this feature is sometimes referred to as Reflected GCI). Once the slave on the primary has received this event, it knows that all changes tagged with a clock value no later than the reflected GCI are now safe &#8211; the window of conflict has closed.</p>
<p>If an application modifies this same row on the secondary before the replication event from the primary was applied then it will send an associated replication event to the slave on the primary <strong>before</strong> it reflects the new GCI. The slave on the primary will process this replication event and compare the clock value recorded with the effected rows with the latest reflected GCI; as the clock value for the conflicting row is higher the primary recognises that a conflict has occured and will launch the algorithm to resolve the inconsistency.</p>
<h3>Resolving the inconsistency</h3>
<p>In earlier releases of MySQL Cluster (or if choosing to use the original algorithm in MySQL Cluster 7.2) you had a choice of simply flagging the primary key of the conflicting rows or backing out one of the changes to the conflicting rows. Using the new NDB$EPOCH_TRANS function, the primary will overwrite the data in the secondary for the effected row(s) <strong>and</strong> any other rows that were updated in the same transaction (even if they are in tables for which conflict detection has not been enabled).</p>
<p>In fact the algorithm goes a step further and if there were subsequent transactions on the secondary that wrote to the conflicting rows then all of the changes from those dependent transactions on the secondary will be backed-out as well.</p>
<h2>Worked example</h2>
<p>In this section, we step through how to setup the active-active replication, with the new conflict detection/resolution feature enabled and then test it out by manually introducing some conflicting transations.</p>
<h3>Set-up MySQL Clusters and basic active-acative replication</h3>
<div id="attachment_2156" class="wp-caption alignright" style="width: 310px"><a href="http://www.clusterdb.com/wp-content/uploads/2011/11/ActiveActive_ServerConfig.png"><img class="size-medium wp-image-2156" title="ActiveActive_ServerConfig" src="http://www.clusterdb.com/wp-content/uploads/2011/11/ActiveActive_ServerConfig-300x160.png" alt="Hosts used for active-active replication tests" width="300" height="160" /></a><p class="wp-caption-text">Hosts used for replication</p></div>
<p>To keep things simple, just two hosts are used; &#8220;black&#8221; will contain all nodes for the primary cluster and &#8220;blue&#8221; will contain all nodes for the secondary. As an extra simplification a single MySQL Server in each cluster will act as both the master and the slave.</p>
<p>This post will quickly show the configuration files and steps to get the 2 clusters up and running but for a better understanding of these steps you can refer to <a title="Deploying MySQL Cluster over multiple hosts" href="http://www.clusterdb.com/mysql-cluster/deploying-mysql-cluster-over-multiple-hosts/" target="_new">Deploying MySQL Cluster over multiple hosts</a>.</p>
<p>config.ini (black):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">[ndb_mgmd]
hostname=localhost
datadir=/home/billy/my_cluster/data
nodeid=1

[ndbd default]
noofreplicas=2
datadir=/home/billy/my_cluster/data

[ndbd]
hostname=localhost
nodeid=3

[ndbd]
hostname=localhost
nodeid=4

[mysqld]
nodeid=50</pre>
<p>config.ini (blue):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">[ndb_mgmd]
hostname=localhost
datadir=/home/billy/my_cluster/data
nodeid=1

[ndbd default]
noofreplicas=2
datadir=/home/billy/my_cluster/data

[ndbd]
hostname=localhost
nodeid=3

[ndbd]
hostname=localhost
nodeid=4

[mysqld]
nodeid=50</pre>
<p>my.cnf for primary cluster (black):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">[mysqld]
ndbcluster
datadir=/home/billy/my_cluster/data
server-id=8
replicate-ignore-table=mysql.ndb_replication
ndb-log-transaction-id=1
binlog-format=ROW
ndb-log-update-as-write=0</pre>
<p>my.cnf for secondary cluster (blue):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">[ndb_mgmd]
[mysqld]
ndbcluster
datadir=/home/billy/my_cluster/data
server-id=9
log-bin=blue-bin.log
ndb-log-transaction-id=1
binlog-format=ROW
ndb-log-update-as-write=0</pre>
<p>Note that the options set in the my.cnf file are very important &#8211; if any of these are missing then things will not work as expected.</p>
<p>Start up primary cluster (black):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">billy@black:~/my_cluster$ ndb_mgmd --initial
   -f conf/config.ini --configdir=/home/billy/my_cluster/conf/
billy@black:~/my_cluster$ ndbd --initial
billy@black:~/my_cluster$ ndbd --initial
billy@black:~/my_cluster$ ndb_mgm -e show # wait for ndbds to finish starting
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1, Nodegroup: 0, Master)
id=4    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1)

[mysqld(API)]   3 node(s)
id=50 (not connected, accepting connect from any host)

billy@black:~/my_cluster$ mysqld --defaults-file=conf/my.cnf &amp;</pre>
<p>Start up secondary cluster (blue):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">billy@blue:~/my_cluster$ ndb_mgmd --initial
   -f conf/config.ini --configdir=/home/billy/my_cluster/conf/
billy@blue:~/my_cluster$ ndbd --initial
billy@blue:~/my_cluster$ ndbd --initial
billy@blue:~/my_cluster$ ndb_mgm -e show # wait for ndbds to finish starting
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1, Nodegroup: 0, Master)
id=4    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.0.1  (mysql-5.5.15 ndb-7.2.1)

[mysqld(API)]   3 node(s)
id=50 (not connected, accepting connect from any host)

billy@blue:~/my_cluster$ mysqld --defaults-file=conf/my.cnf &amp;</pre>
<p>Both clusters are now running and replication can be activated for both sites:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">billy@black:~/my_cluster$ mysql -u root --prompt="black-mysql&gt; "
black-mysql&gt; CREATE USER repl_user@192.168.1.16;
black-mysql&gt; GRANT REPLICATION SLAVE ON *.* TO repl_user@192.168.1.16
                 IDENTIFIED BY 'billy';</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">billy@blue:~/my_cluster$ mysql -u root --prompt="blue-mysql&gt; "
blue-mysql&gt; CREATE USER repl_user@192.168.1.20;
blue-mysql&gt; GRANT REPLICATION SLAVE ON *.* TO repl_user@192.168.1.20
                 IDENTIFIED BY 'billy';
blue-mysql&gt; CHANGE MASTER TO MASTER_HOST='192.168.1.20',
    -&gt; MASTER_USER='repl_user',
    -&gt; MASTER_PASSWORD='billy',
    -&gt; MASTER_LOG_FILE='',
    -&gt; MASTER_LOG_POS=4;
blue-mysql&gt; START SLAVE;</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; CHANGE MASTER TO MASTER_HOST='192.168.1.16',
    -&gt; MASTER_USER='repl_user',
    -&gt; MASTER_PASSWORD='billy',
    -&gt; MASTER_LOG_FILE='',
    -&gt; MASTER_LOG_POS=4;
black-mysql&gt; START SLAVE;</pre>
<h3>Set up enhanced conflict detection &amp; resolution</h3>
<p>The first step is to identify the tables that need conflict detection enabling. Each of those tables then has to have an entry in the mysql.ndb_replication table where they&#8217;re tagged as using the new NDB$EPOCH_TRANS() function &#8211; you could also choose to use NDB$EPOCH(), in which case only the changes to conflicting rows will be backed-out rather than the full transactions. A few things to note:</p>
<ul>
<li>This must be done <strong>before</strong> creating the application tables themselves</li>
<li>Should only be done on the primary</li>
<li>By default the table doesn&#8217;t exist and so the very first step is to create it</li>
</ul>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; CREATE TABLE mysql.ndb_replication  (
    -&gt;     db VARBINARY(63),
    -&gt;     table_name VARBINARY(63),
    -&gt;     server_id INT UNSIGNED,
    -&gt;     binlog_type INT UNSIGNED,
    -&gt;     conflict_fn VARBINARY(128),
    -&gt;     PRIMARY KEY USING HASH (db, table_name, server_id)
    -&gt; )   ENGINE=NDB
    -&gt; PARTITION BY KEY(db,table_name);
black-mysql&gt; INSERT INTO mysql.ndb_replication VALUES ('clusterdb', 'simple1', 8, 0,
'NDB$EPOCH_TRANS()');
black-mysql&gt; INSERT INTO mysql.ndb_replication VALUES ('clusterdb', 'simple2', 8, 0,
'NDB$EPOCH_TRANS()');
black-mysql&gt; INSERT INTO mysql.ndb_replication VALUES ('clusterdb', 'simple3', 8, 0,
'NDB$EPOCH_TRANS()');</pre>
<p>For each of these tables you should also create an exceptions table which will record any conflicts that have resulted in changes being rolled back; the format of these tables is rigidly defined and so take care to copy the types exactly; again this only needs doing on the primary:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; CREATE DATABASE clusterdb;USE clusterdb;
black-mysql&gt; CREATE TABLE <strong>simple1$EX</strong> (server_id INT UNSIGNED,
               master_server_id INT UNSIGNED, master_epoch BIGINT UNSIGNED,
               count INT UNSIGNED, id INT NOT NULL, PRIMARY KEY(server_id,
               master_server_id, master_epoch, count)) ENGINE=NDB;
black-mysql&gt; CREATE TABLE <strong>simple2$EX</strong> (server_id INT UNSIGNED,
               master_server_id INT UNSIGNED, master_epoch BIGINT UNSIGNED,
               count INT UNSIGNED, id INT NOT NULL, PRIMARY KEY(server_id,
               master_server_id, master_epoch, count)) ENGINE=NDB;
black-mysql&gt; CREATE TABLE <strong>simple3$EX</strong> (server_id INT UNSIGNED,
               master_server_id INT UNSIGNED, master_epoch BIGINT UNSIGNED,
               count INT UNSIGNED, id INT NOT NULL, PRIMARY KEY(server_id,
               master_server_id, master_epoch, count)) ENGINE=NDB;</pre>
<p>Finally, the application tables themselves can be created (this only needs doing on the primary as they&#8217;ll be replicated to the secondary):</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; CREATE TABLE simple1 (id INT NOT NULL PRIMARY KEY, value INT) ENGINE=ndb;
black-mysql&gt; CREATE TABLE simple2 (id INT NOT NULL PRIMARY KEY, value INT) ENGINE=ndb;
black-mysql&gt; CREATE TABLE simple3 (id INT NOT NULL PRIMARY KEY, value INT) ENGINE=ndb;</pre>
<p>Everything is now set up and the new configuration can be tested to ensure that conflicts are detected and the correct updates are rolled back.</p>
<h3>Testing enhanced active-active replication and conflict detection</h3>
<p>The first step is to add some data to our new tables (note that at this point replication is running and so they only need to be created on the primary) and then update 1 row to make sure that it is replicated to the secondary:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; INSERT INTO simple1 VALUES (1,10);
black-mysql&gt; INSERT INTO simple2 VALUES (1,10);
black-mysql&gt; INSERT INTO simple3 VALUES (1,10);
black-mysql&gt; UPDATE simple1 SET value=12 WHERE id=1;</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">blue-mysql&gt; USE clusterdb;
blue-mysql&gt; SELECT * FROM simple1;
+----+-------+
| id | value |
+----+-------+
|  1 |    12 |
+----+-------+</pre>
<p>It is important that the NDB$EPOCH_TRANS() function rolls back any transactions on the secondary that involve a conflict (as well as subsequent, dependent transactions that modify the same rows); to do this manually the simplest approach is to stop the slave IO thread on the secondary thread in order to increase the size of the window of conflict (which is otherwise very short). Once the slave IO thread has been stopped a change is made to table simple1 on the primary and then the secondary makes a (conflicting) change to the same row as well as making a change to table simple2 in the same transaction. A second transaction on the primary will change a row in simple3 &#8211; as it doesn&#8217;t touch any rows that have been involved in a conflict then that change should stand.</p>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">blue-mysql&gt; STOP SLAVE IO_THREAD;</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; UPDATE simple1 SET value=13 WHERE id=1;</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">blue-mysql&gt; BEGIN; # conflicting transaction
blue-mysql&gt; UPDATE simple1 SET value=20 WHERE id=1;
blue-mysql&gt; UPDATE simple2 SET value=20 WHERE id=1;
blue-mysql&gt; COMMIT;
blue-mysql&gt; UPDATE simple3 SET value=20 WHERE id=1; # non conflicting
blue-mysql&gt; SELECT * FROM simple1;
+----+-------+
| id | value |
+----+-------+
|  1 |    20 |
+----+-------+
blue-mysql&gt; SELECT * FROM simple2;
+----+-------+
| id | value |
+----+-------+
|  1 |    20 |
+----+-------+
blue-mysql&gt; SELECT * FROM simple3;
+----+-------+
| id | value |
+----+-------+
|  1 |    20 |
+----+-------+</pre>
<p>If you now check the exception tables then you can see that the primary (black) has received the changes from the secondary (blue) and because the first transaction updated the same row in simple1 during its window of conflict it has recorded that the change needs to be rolled back &#8211; this will happen as soon as the replication thread is restarted on the secondary:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; SELECT * FROM simple1$EX;
+-----------+------------------+---------------+-------+----+
| server_id | master_server_id | master_epoch  | count | id |
+-----------+------------------+---------------+-------+----+
|         8 |                9 | 1494648619009 |     3 |  1 |
+-----------+------------------+---------------+-------+----+

black-mysql&gt; SELECT * FROM simple2$EX;
+-----------+------------------+---------------+-------+----+
| server_id | master_server_id | master_epoch  | count | id |
+-----------+------------------+---------------+-------+----+
|         8 |                9 | 1494648619009 |     1 |  1 |
+-----------+------------------+---------------+-------+----+

black-mysql&gt; SELECT * FROM simple3$EX;
Empty set (0.05 sec)</pre>
<pre style="padding-left: 30px; font-size: smaller; color: #339;">blue-mysql&gt; START SLAVE IO_THREAD;
blue-mysql&gt; SELECT * FROM simple1;
+----+-------+
| id | value |
+----+-------+
|  1 |    13 |
+----+-------+

blue-mysql&gt; SELECT * FROM simple2;
+----+-------+
| id | value |
+----+-------+
|  1 |    10 |
+----+-------+

blue-mysql&gt; SELECT * FROM simple3;
+----+-------+
| id | value |
+----+-------+
|  1 |    20 |
+----+-------+</pre>
<p>These are the results we expect &#8211; simple1 has the value set by the primary with the subsequent change on the secondary rolled back; simple2 was not updated by the primary but the change on the secondary was rolled back as it was made in the same transaction as the conflicting update to simple1. The change on the secondary to simple3 has survived as it was made outside of any conflicting transaction and the change was not dependent on any conflicting changes. Finally just confirm that the data is identical on the primary:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; SELECT * FROM simple1;
+----+-------+
| id | value |
+----+-------+
|  1 |    13 |
+----+-------+

black-mysql&gt; SELECT * FROM simple2;
+----+-------+
| id | value |
+----+-------+
|  1 |    10 |
+----+-------+

black-mysql&gt; SELECT * FROM simple3;
+----+-------+
| id | value |
+----+-------+
|  1 |    20 |
+----+-------+</pre>
<p>Statistics are provided on the primary that record that 1 conflict has been detected, effecting 1 transaction and that it resulted in 2 row changes being rolled back:</p>
<pre style="padding-left: 30px; font-size: smaller; color: #000;">black-mysql&gt; SHOW STATUS LIKE 'ndb_conflict%';
+------------------------------------------+-------+
| Variable_name                            | Value |
+------------------------------------------+-------+
| Ndb_conflict_fn_max                      | 0     |
| Ndb_conflict_fn_old                      | 0     |
| Ndb_conflict_fn_max_del_win              | 0     |
| Ndb_conflict_fn_epoch                    | 0     |
| Ndb_conflict_fn_epoch_trans              | 1     |
| Ndb_conflict_trans_row_conflict_count    | 1     |
| Ndb_conflict_trans_row_reject_count      | 2     |
| Ndb_conflict_trans_reject_count          | 1     |
| Ndb_conflict_trans_detect_iter_count     | 1     |
| Ndb_conflict_trans_conflict_commit_count | 1     |
+------------------------------------------+-------+</pre>
<p>We&#8217;re anxious to get feedback on this feature and so please go ahead and <a title="Download MySQL Cluster 7.2.1" href="http://dev.mysql.com/downloads/cluster/#downloads" target="_new">download MySQL Cluster 7.2.1</a> and let us know how you get on through the comments for this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/enhanced-conflict-resolution-with-mysql-cluster-active-active-replication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster material from Oracle Open World 2011</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-material-from-oracle-open-world-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-material-from-oracle-open-world-2011</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-material-from-oracle-open-world-2011/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 09:54:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.2]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>
		<category><![CDATA[oow11]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=2069</guid>
		<description><![CDATA[For those people that weren&#8217;t able to attend the MySQL Cluster demo or sessions at this year&#8217;s Oracle Open World (or even for those that did) and would like copies of the material, links are provided here. Building Scalable &#38; Highly Available Database Services with MySQL Cluster &#8211; includes a description of the features in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2011/08/Oracle_OpenWorld_2011.jpg"><img class="alignright size-medium wp-image-1918" title="Oracle_OpenWorld_2011" src="http://www.clusterdb.com/wp-content/uploads/2011/08/Oracle_OpenWorld_2011-300x74.jpg" alt="" width="300" height="74" /></a>For those people that weren&#8217;t able to attend the MySQL Cluster demo or sessions at this year&#8217;s Oracle Open World (or even for those that did) and would like copies of the material, links are provided here.</p>
<ul>
<li><a href="http://www.clusterdb.com/oow11/OOW_MySQLCluster.pdf" target="_blank">Building Scalable &amp; Highly Available Database Services with MySQL Cluster</a> &#8211; includes a description of the features in the new MySQL Cluster7.2  Development Milestone Release 2</li>
<li><a href="http://www.clusterdb.com/oow11/NoSQL_and_MySQL_Best_of_both_worlds.pdf" target="_blank">NoSQL Access to MySQL: The Best of Both Worlds</a> &#8211; Covers what people are looking for from NoSQL data stores and how MySQL Cluster can meet these needs (both in terms of database characteristics and the APIs offered to applications)</li>
<li><a href="http://www.clusterdb.com/oow11/Getting_the_most_out_of_MySQL_on_Windows_OOW2011.pdf" target="_blank">Getting the most out of MySQL on Windows</a> &#8211; How to deliver Highly Available applications with MySQL on Windows (including replication, Windows Server Failover Clustering and MySQL Cluster) as well as the latest in MySQL tools and the Windows installer.</li>
<li><a href="http://www.clusterdb.com/oow11/MySQL_Cluster_Demo.swf" target="_blank">MySQL Cluster Demo</a> &#8211; Interactive flash demo, used in the MySQL demo area</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-material-from-oracle-open-world-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My sessions at Oracle OpenWorld 2011</title>
		<link>http://www.clusterdb.com/mysql-cluster/my-sessions-at-oracle-openworld-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-sessions-at-oracle-openworld-2011</link>
		<comments>http://www.clusterdb.com/mysql-cluster/my-sessions-at-oracle-openworld-2011/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 07:17:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.2]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1916</guid>
		<description><![CDATA[Slight adjustment to some of the times + added the MySQL community reception (read  vodka!). Oracle OpenWorld (San Francisco) starts on Sunday 2nd October (including some MySQL community sessions) through Thursday 6th October. MySQL has a lot of sessions this year as well as 3 demo booths. This year I&#8217;m going to be involved in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2011/08/Oracle_OpenWorld_2011.jpg"><img class="alignright size-medium wp-image-1918" title="Oracle_OpenWorld_2011" src="http://www.clusterdb.com/wp-content/uploads/2011/08/Oracle_OpenWorld_2011-300x74.jpg" alt="" width="300" height="74" /></a>Slight adjustment to some of the times + added the MySQL community reception (read  vodka!). Oracle OpenWorld (San Francisco) starts on Sunday 2nd October (including some MySQL community sessions) through Thursday 6th October. MySQL has a lot of sessions this year as well as 3 demo booths.</p>
<p>This year I&#8217;m going to be involved in 3 public sessions &#8211; if you&#8217;re attending, please come along and say hello!</p>
<ul>
<li>Getting the Most Out of MySQL on Windows &#8211; 13:15 on Tuesday (Marriott Marquis &#8211; Golden Gate C2)</li>
<li>Building Highly Available and Scalable Real-Time Services with MySQL Cluster &#8211; 10:15 on Wednesday (Marriott Marquis &#8211; Golden Gate C1)</li>
<li>NoSQL Access to MySQL: The Best of Both Worlds &#8211; 11:45 on Wednesday (Marriott Marquis &#8211; Golden Gate C1)</li>
<li>MySQL Community Reception &#8211; 19:00 on Wednesday (San Francisco Marriott Marquis &#8211; Foothill G)</li>
</ul>
<div>In addition I&#8217;ll be spending as much time as I can at the MySQL demo booths in the exhibition hall. Come and visit us for demos of MySQL Cluster, MySQL Enterprise Edition and MySQL WorkBench.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/my-sessions-at-oracle-openworld-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster 7.1.15 released</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-15-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-7-1-15-released</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-15-released/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 13:06:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.2]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1908</guid>
		<description><![CDATA[The binary version for MySQL Cluster 7.1.15 has now been made available at http://www.mysql.com/downloads/cluster/ A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.15 (compared to 7.1.13) can be found in the official MySQL Cluster documentation for Cluster 7.1.14 &#38; 7.1.15.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png"><img class="alignright size-full  wp-image-919" title="mysql-cluster-logo-150x105" src="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png" alt="" width="150" height="105" /></a><br />
The binary version for MySQL Cluster 7.1.15 has now been made available at <a href="http://www.mysql.com/downloads/cluster/" target="_blank">http://www.mysql.com/downloads/cluster/</a> </p>
<p>A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.15 (compared to 7.1.13) can be found in the official MySQL Cluster documentation for Cluster <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-56-ndb-7-1-14.html" target="_blank">7.1.14</a> &amp; <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-56-ndb-7-1-15.html" target="_blank">7.1.15</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-15-released/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster 7.1.13 Released</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-3-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-7-1-3-released</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-3-released/#comments</comments>
		<pubDate>Mon, 23 May 2011 08:21:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.1]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1824</guid>
		<description><![CDATA[The binary version for MySQL Cluster 7.1.13 has now been made available at http://www.mysql.com/downloads/cluster/ A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.13 (compared to 7.1.10) can be found in the official MySQL Cluster documentation for Cluster 7.1.13, 7.1.12 &#38; 7.1.11.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png"><img class="alignright size-full  wp-image-919" title="mysql-cluster-logo-150x105" src="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png" alt="" width="150" height="105" /></a><br />
The binary version for MySQL Cluster 7.1.13 has now been made available at <a href="http://www.mysql.com/downloads/cluster/" target="_blank">http://www.mysql.com/downloads/cluster/</a></p>
<p>A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.13 (compared to 7.1.10) can be found in the official MySQL Cluster documentation for Cluster <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-51-ndb-7-1-13.html" target="_blank">7.1.13</a>, <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-51-ndb-7-1-12.html" target="_blank">7.1.12</a> &amp; <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-51-ndb-7-1-11.html">7.1.11</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Almost here &#8211; MySQL Cluster at Collaborate 11</title>
		<link>http://www.clusterdb.com/mysql-cluster/almost-here-mysql-cluster-at-collaborate-11/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=almost-here-mysql-cluster-at-collaborate-11</link>
		<comments>http://www.clusterdb.com/mysql-cluster/almost-here-mysql-cluster-at-collaborate-11/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 08:43:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>
		<category><![CDATA[MySQL Replication]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1761</guid>
		<description><![CDATA[A quick reminder that MySQL is well represented at the Oracle Collaborate conference which starts in Orlando on Sunday. For those not familiar with Collaborate, it&#8217;s the big community conference for Oracle users &#8211; this year it&#8217;s in Orlando from April 10th through 14th (I&#8217;ve just re-checked the weather forecast, 31 Celsius vs. -18 at [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2011/03/collaborate11.jpg"><img class="alignright size-medium wp-image-1525" title="collaborate11" src="http://www.clusterdb.com/wp-content/uploads/2011/03/collaborate11-300x111.jpg" alt="" width="300" height="111" /></a><br />
  A quick reminder that MySQL is well represented at the Oracle Collaborate conference which starts in Orlando on Sunday.
  </p>
<p>For those not familiar with Collaborate, it&#8217;s the big community conference for Oracle users &#8211; this year it&#8217;s in Orlando from April 10th through 14th (I&#8217;ve just re-checked the weather forecast, 31 Celsius vs. -18 at the last conference I presented at &#8211; OOW Beijing in December &#8211; what a difference 4 months and 8,000 miles make!).</p>
<p>  I&#8217;ll be presenting on MySQL Cluster in a session called &#8220;<a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2230" target="_blank">Building Highly Available Scalable Real-Time Services with MySQL Cluster</a>&#8221; where I&#8217;ll focus on:
</p>
<ul>
<li>Basics of MySQL Cluster &#8211; what it does, who uses it and why</li>
<li>Accessing your data &#8211; SQL and NoSQL access methods</li>
<li>Latest features</li>
<li>What&#8217;s coming in the future.</li>
</ul>
<p>
My session starts at 8:00 am on Tuesday 12th April (sorry for the early start) and is in room 306A.
</p>
<p>For people interested in MySQL Cluster, another session you should try to attend is &#8220;<a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2271" target="_blank">MySQL Cluster for the Enterprise</a>&#8221; presented by Craig Russell at 2:15 pm on Wednesday 13th April.</p>
<p>
Other MySQL HA topics from the Oracle team:</p>
<ul>
<li><a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2791" target="_blank">Boosting MySQL replication performance through the multi-threaded slave.</a></li>
<li><a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2122" target="_blank">MYSQL 5.5 REPLICATION</a></li>
<li><a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2792" target="_blank">INTRODUCTION TO MYSQL REPLICATION (Tutorial)</a></li>
<li><a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2184" target="_blank">SHARDING TECHNIQUES FOR MYSQL</a></li>
</ul>
<p>To get an overall picture of what is happening to MySQL in Oracle, you should attend Tomas Ulin&#8217;s (VP of MySQL Engineering) &#8220;<a href="http://coll11.mapyourshow.com/3_0/sessions/sessiondetails.cfm?ScheduledSessionID=2762" target="_blank">The State of MySQL</a>&#8221; session at 9:15 am on Monday 11th April.
</p>
<p>
You can see a <a href="http://collaborate11.ioug.org/Education/MySQL/tabid/133/Default.aspx" target="_blank">full list of sessions in the MySQL track here</a>.
</p>
<p>
And last but not least, come and visit us at the MySQL booths in the Oracle Demo Grounds (Booth #657) to chat with us and/or get a demo. Here are the opening times:</p>
<ul>
<li>Monday		 6:00pm &#8211; 8:00pm (Welcome Reception)</li>
<li>Tuesday		10:15am &#8211; 4:00pm &#038; 5:30pm-7:00pm (Reception)</li>
<li>Wednesday	10:15am &#8211; 4:00pm</li>
</ul>
<p>I&#8217;ll be at the demo booth as much as possible but definitely for the 6:00pm &#8211; 8:00pm slot on Monday and from 10:15am &#8211; 1pm on Wednesday &#8211; hope to see some of you there.
</p>
<p>
Register for the event at <a href="http://collaborate11.ioug.org/Home/Registration/tabid/82/Default.aspx" target="_blank">http://collaborate11.ioug.org/Home/Registration/tabid/82/Default.aspx</a>	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/almost-here-mysql-cluster-at-collaborate-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>High Availability Solutions &#8211; part for the MySQL On Windows Forum</title>
		<link>http://www.clusterdb.com/mysql-cluster/high-availability-solutions-part-for-the-mysql-on-windows-forum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=high-availability-solutions-part-for-the-mysql-on-windows-forum</link>
		<comments>http://www.clusterdb.com/mysql-cluster/high-availability-solutions-part-for-the-mysql-on-windows-forum/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 16:13:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.1]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1469</guid>
		<description><![CDATA[STOP PRESS: the recording of this forum is now available for replay. On March 16th, we&#8217;re holding an on-line forum to discuss MySQL on Windows &#8211; I&#8217;ll be handling the High Availability session (includes MySQL replication and MySQL Cluster). The event runs from 9 am Pacific Time until 12:00 pm; the HA session is schedules [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.clusterdb.com/wp-content/uploads/2011/03/MySQL_Windows_Forum.jpg"><img class="aligncenter size-full wp-image-1470" title="MySQL_Windows_Forum" src="http://www.clusterdb.com/wp-content/uploads/2011/03/MySQL_Windows_Forum.jpg" alt="" width="563" height="98" /></a></p>
<p><strong>STOP PRESS: <a href="http://event.on24.com/r.htm?e=284490&amp;s=1&amp;k=583E2237A777967F8410211EC54EF3CB&amp;partnerref=OnDemandAttendee" target="_blank">the recording of this forum is now available for replay</a></strong>.</p>
<p>On March 16th, we&#8217;re holding an on-line forum to discuss MySQL on Windows &#8211; I&#8217;ll be handling the High Availability session (includes MySQL replication and MySQL Cluster). The event runs from 9 am Pacific Time until 12:00 pm; the HA session is schedules for 11:00 Pacific and runs for half an hour. I&#8217;ll also be answering questions on-line during the forum. As always the even is free but you need to <a href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&amp;eventid=284490&amp;sessionid=1&amp;key=583E2237A777967F8410211EC54EF3CB&amp;partnerref=banneroracleHP&amp;sourcepage=register" target="_blank">register here</a>.</p>
<p>Here is the official description&#8230;</p>
<div>
<p>Join our Online Forum and discover how you can win with MySQL on Windows.  Oracle’s MySQL Vice President of Engineering Tomas Ulin will kick off a  comprehensive agenda of presentations enabling you to better  understand:</p>
</div>
<ul type="disc">
<li>Why the world’s most popular open source database is extremely popular on  Windows, both for enterprise users and ISVs</li>
<li>How MySQL fits into the Windows environment, and what are the upcoming  milestones to make MySQL even better on the Microsoft platform</li>
<li>What are the visual tools at your disposal to effectively develop, deploy  and manage MySQL applications on Windows</li>
<li>How you can deliver highly available business critical Windows based MySQL  applications</li>
<li>Why Security Solutions Provider SonicWall selected MySQL over Microsoft SQL  Server, and how they successfully deliver MySQL based solutions</li>
</ul>
<p>Additionally, Oracle experts will be on live chat throughout the event to  answer your toughest questions.</p>
<p><strong>MySQL on Windows: It Just Keeps Getting Better!</strong></p>
<p>Oracle&#8217;s MySQL Vice President of Engineering Tomas Ulin will kick off the  Online Forum and review why MySQL has become highly popular on Windows for both  enterprise users and ISVs, as well as Oracle&#8217;s MySQL on Windows Strategy. Senior  Product Manager Rob Young will then help you understand how MySQL fits into your  familiar Windows environment, covering MySQL Connectors, integration with Visual  Studio, security aspects&#8230;and more. They will also review the improvements  Oracle recently delivered as well as the upcoming milestones to make MySQL even  better on Windows.</p>
<p><strong>From Modeling to Performance Tuning: MySQL Visual Tools for  Developers &amp; DBAs</strong></p>
<p>Are you wondering what visual tools are at your disposal to effectively  develop, deploy and manage MySQL applications on Windows? Mike Zinner and Rob  Young will show you how you can benefit from the following tools:</p>
<ul>
<li>MySQL Workbench, which provides visual data modeling, SQL development, and  comprehensive administration tools for MySQL server configuration, user  administration, and much more.</li>
<li>The MySQL Enterprise Monitor, a &#8220;Virtual DBA assistant&#8221; that helps MySQL  DBAs manage more MySQL databases as well as find and fix problems before they  become serious problems or costly outages.</li>
<li>The MySQL Query Analyzer, which helps improve your C# and .Net application  performance by monitoring query performance and accurately pinpointing SQL code  that is causing a slow down.</li>
<li>MySQL Enterprise Backup, to perform online hot MySQL backups.</li>
</ul>
<p><strong>Implementing MySQL High Availability Solutions on  Windows</strong></p>
<p>Databases play a key role in ensuring application availability, and MySQL  offers a range of HA solutions on Windows. Senior Product Manager Andrew Morgan  will in this session explore two of them:</p>
<ul>
<li>MySQL Replication, which has been widely deployed by some of the leading web  properties and in the enterprise to deliver highly available database services,  providing a means of mirroring data across multiple hosts to withstand failures  of individual systems.</li>
<li>MySQL Cluster combining 99.999% availability with the low TCO of an open  source solution. With a distributed shared-nothing architecture and no single  point of failure, MySQL Cluster can scale linearly to meet the unprecedented  demands of the next generation web services &amp; telecom  applications.</li>
</ul>
<p><strong>Customer Story: SonicWall</strong></p>
<p>SonicWALL provides network security and data protection solutions enabling to  secure, control and scale global networks. Director of Product Management Jan  Sijp will share with you how they have successfully delivered MySQL based  solutions on both Windows &amp; Linux, providing information about the  challenges they were facing, why they selected MySQL over Microsoft SQL Server,  and the implementation process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/high-availability-solutions-part-for-the-mysql-on-windows-forum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster 7.1.9 binaries released</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-binaries-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-7-1-9-binaries-released</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-binaries-released/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 13:14:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster 7.1]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1441</guid>
		<description><![CDATA[The binary version for MySQL Cluster 7.1.9 has now been made available at http://www.mysql.com/downloads/cluster/ A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.9 (compared to 7.1.8) can be found in the official MySQL Cluster documentation. In addition, there is a great BLOG posting from Johan Anderson explaining how to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png"><img class="alignright size-full  wp-image-919" title="mysql-cluster-logo-150x105" src="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png" alt="" width="150" height="105" /></a>The binary version for MySQL Cluster 7.1.9 has now been made available at <a href="http://www.mysql.com/downloads/cluster/" target="_blank">http://www.mysql.com/downloads/cluster/</a></p>
<p>A description of all of the changes (fixes) that have gone into MySQL Cluster 7.1.9 (compared to 7.1.8) can be found in the <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-51-ndb-7-1-9.html" target="_blank">official MySQL Cluster documentation</a>. In addition, there is a great BLOG posting from Johan Anderson explaining <a href="http://johanandersson.blogspot.com/2010/11/diskpagebuffermemory-tuning-and-disk.html" target="_blank">how to use the new table added to ndbinfo to tune DiskPageBufferMemory when storing tables on disk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-7-1-9-binaries-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster 6.3.39 binaries released</title>
		<link>http://www.clusterdb.com/mysql-cluster/mysql-cluster-6-3-39-binaries-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-cluster-6-3-39-binaries-released</link>
		<comments>http://www.clusterdb.com/mysql-cluster/mysql-cluster-6-3-39-binaries-released/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 13:09:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Cluster CGE]]></category>

		<guid isPermaLink="false">http://www.clusterdb.com/?p=1438</guid>
		<description><![CDATA[The binary version for MySQL Cluster 6.3.39 has now been made available at http://www.mysql.com/downloads/cluster/ A description of all of the changes (fixes) that have gone into MySQL Cluster 6.3.39 (compared to 6.3.38) can be found in the official MySQL Cluster documentation.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png"><img class="alignright size-full  wp-image-919" title="mysql-cluster-logo-150x105" src="http://www.clusterdb.com/wp-content/uploads/2010/02/mysql-cluster-logo-150x105.png" alt="" width="150" height="105" /></a>The binary version for MySQL Cluster 6.3.39 has now been made available at <a href="http://www.mysql.com/downloads/cluster/" target="_blank">http://www.mysql.com/downloads/cluster/</a></p>
<p>A description of all of the changes (fixes) that have gone into MySQL Cluster 6.3.39 (compared to 6.3.38) can be found in the <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-news-5-1-51-ndb-6-3-39.html" target="_blank">official MySQL Cluster documentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterdb.com/mysql-cluster/mysql-cluster-6-3-39-binaries-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

