The MySQL
Conference is over. There have been many new
developments, and the ones who have missed it will probably
want to get a summary of the excitement, possibly from the
people who have contributed to shaping the news. The Open Database Camp will give users an opportunity to catch up. Especially to open source users in Europe. Come and share the fun. There will be talks on MySQL, PostgreSQL, several NoSQL products, and a bunch of other cool stuff. |
Tungsten Replicator code is now fully open source and published
on code.google.com. Here is our new home in case you do not
yet know it: http://code.google.com/p/tungsten-replicator.
I hope you will visit our new digs and admire the
furniture.
The fact that the replicator is now fully open source under GPL
V2 is kind of old news, so I would instead like to talk about
something else: our initial experience setting up the
replicator project at code.google.com. In a nutshell, it has been
excellent. There are several things that stand out.
- The site is incredibly easy to use. You can customize the home page, add members, add external links, etc. quickly and without having to resort to help.
- It has everything we need. …
(or at least some ideas)
I really enjoyed David Shrewsbury's presentation about Drizzle replication today at the MySQL conf 2011. It's not that Drizzle replication is fully fleshed out, but it sure seems like it's got all the necessary components to make it dramatically better than stock MySQL replication, at least from the HA perspective.
Here's some things that Drizzle replication (or MySQL replication, for that matter) needs for me to be able to improve on the Master HA technique that is used at Yahoo:
With the addition of the new tables to implement crash-safe
replication we also get access to replication information
through the SQL interface. This might not seem like a big
advantage, but it should not be taken lightly. To demonstrate the
power of using this approach, I will show how to implement a
multi-source round-robin replication described at other places (including our
book). However, compared to the other implementations—where
the implementation requires a client to parse the output of
SHOW SLAVE STATUS
—the twist is that the
implementation is entirely done in the server, using pure SQL.
If you're familiar with replication, you know that a slave can just …
[Read more]A common request is to have replication crash-safe in the sense that the replication progress information always is in sync with what has actually been applied to the database, even in the event of a crash. Although transactions are not lost if the server crashes, it could require some tweaking to bring the slaves up again.
In the latest MySQL 5.6 milestone development release, the replication team has implemented crash-safety for the slave by adding the ability of committing the replication information together with the transaction (see Figure 1). This means that replication information will always be consistent with has been applied to the database, even in the event of a server crash. Also, some fixes were done on the master to ensure that it recovers correctly.
If you're familiar with replication, you know that the
replication information is stored in two files:
master.info
and relay-log.info
. …
MySQL replication is fast, easy to use, and reliable, but once it breaks, it can be very hard to figure out what the problem is. One of the concerns often raised is that events are corrupted, either through failing hardware, network failure, or software bugs. Even though it is possible to handle errors during transfer over the network using an SSL connection, errors here is rarely the problem. A more common problem (relatively) is that the events are corrupted either due to a software bug, or hardware error.
To be able to better handle corrupted events, the replication team has added replication event checksums to MySQL 5.6 Milestone Development Release.
The replication event checksums are added to each event as it is written to the binary log and are used to check that nothing happened with the event on the way to the slave. Since the checksums are added to …
[Read more]
I saw that both Haidong Ji and Geert VanderKelen have proposed a
Python monitor for MySQL replication, calling it the "poor man's
version".
See Poor man’s MySQL replication monitoring and
Geert's Refactored: Poor man’s MySQL replication
monitoring.
Having Python in your server doesn't really qualify as "poor
man". In many cases it's a luxury, and thus, here's my shot at
the problem, using a Bash shell script.
Unlike its Python-based competition, this version also checks
that the slave is replicating from the intended master, and that
it is not lagging behind.
#!/bin/bash[Read more]
USERNAME=msandbox
PASSWORD=msandbox
EXPECTED_MASTER_HOST=127.0.0.1
EXPECTED_MASTER_PORT=27371
SLAVE_HOST=127.0.0.1 …
Version 1.2 of Slave Readahead is now available for download
here. If you don't know what this little project
is about, it is used to pre-warm the MySQL Cache for the
Replication thread on MySQL slaves.
It is built to support MySQL 5.5 and up only, as it uses some new
commands in MySQL (like the SHOW RELAYLOG EVENTS admin command).
For more information regarding this little project, either read
this blogpost or download the documentation for the project.
/Karlsson
Isolation is an important part of ACID properties that guarantee that transactions are processed in a reliable manner. But there are four different levels of isolation available and you have to understand each one of them to be able to select the correct one for your needs. This post intends on explaining the four levels together with their effects on locking and performance.
The O'Reilly MySQL 2011 conference is coming up fast.
It should be a good conference as it covers the
increasingly diverse MySQL community and MySQL alternatives very
well. As usual, there are some painful choices about which
talks to attend. I'm doing two talks myself that I hope you
have on your list:
- Curing Replication Deprivation with Tungsten -- A tutorial together with my colleague Ed Archibald. It covers everything you ever wanted to know about how to use parallel replication, handle multi-master/multi-source, replication to PostgreSQL/Oracle, etc. We will have a short section at the end about how to build full clusters with Tungsten Enterprise. Giuseppe Maxia is threatening to join and do some of his famous …