There have been a number of comments that Amazon RDS does
not allow users access to MySQL replication capabilities (for
example here and here). This is a pity. Replication is
one of the great strengths of MySQL and the lack of it is a
show-stopper for many users. As of the latest build
of Tungsten Replicator half of this problem
is on the way to being solved. You can now set up real-time
replication from an external MySQL master into an Amazon RDS
instance.
In the remainder of this article I will explain how to set up
Tungsten replication to an Amazon RDS slave, then add a few
thoughts …
We have started a new series of webinars at Continuent that
we call Tungsten University. They provide education on
Tungsten clustering and replication in handy
one-hour chunks. These are not sales pitches. Our
goal is to provide accessible education about setting up and
operating Tungsten without any marketing fluff.
The first Tungsten University webinar entitled "Configure & provision Tungsten clusters" will take
place on Thursday January 17th at 10:00 PST. It will show
you how to set up a cluster in Amazon EC2. There will be a
repeat on January 22nd at 15:00 GMT. We usually record
webinars, so you can look at them later as well.
You do not have to be a customer to attend these webinars, …
While we do have many blog posts on replication on our blog, such as on replication being single-threaded, on semi-synchronous replication or on estimating replication capacity, I don’t think we have one that covers the very basics of how MySQL replication really works on the high level. Or it’s been so long ago I can’t even find it. So, I decided to write one now.
Of course, there are many aspects of MySQL replication, but my main focus will be the logistics – how replication events are written on the master, how they are transferred to the replication slave and then how …
[Read more]Global Transaction Identifiers (GTIDs) are one of the key replication enhancements in MySQL 5.6. GTIDs make it simple to track and compare replication across a master - slave topology. This enables:
- Much simpler recovery from failures of the master,
- Introduces great flexibility in the provisioning and on-going management of multi-tier or ring (circular) replication topologies.
A new on-demand MySQL 5.6 GTID webinar delivered by the replication engineering team is now available, providing deep insight into the design and implementation of GTIDs, and how they enable users to simplify MySQL scaling and HA. The webinar covers:
- Concepts: What is a GTID? How does the …
[Read more]MySQL 5.6 seems to be ready for GA. I have no inside information about it, but from some clues collected in various places I feel that the release should not be far away. Thus, it's time for some serious testing, and for that purpose I have worked at updating MySQL Sandbox with some urgent features.
I have just released MySQL Sandbox 3.0.28, with more support for MySQL 5.6. Notably in this release, there is suppression of MySQL 5.6 annoying verbosity, additional suppression of more annoying warnings ( actually a bug) when using empty passwords on …
[Read more]I got some very good comments/questions on my previous post on MariaDB global transaction ID, from Giuseppe and Robert (of Tungsten fame). I thought a follow-up post would be appropriate to answer and further elaborate on the comments, as the points they raise are very important and interesting.
(It also gives me the opportunity to explain more deeply a lot of interesting design decisions that I left out in the first post for the sake of brevity and clarity.)
On crash-safe slave
One of the things I really wanted to improve with global transaction ID is to make the replication slaves more crash safe with respect to their current replication state. This state is mostly persistently stored information about which event(s) were last executed on the slave, so that after a server restart the slave will know from which point in the master binlog(s) …
[Read more]The main goal of global transaction ID is to make it easy to promote a new master and switch all slaves over to continue replication from the new master. This is currently harder than it could be, since the current replication position for a slave is specified in coordinates that are specific to the current master, and it is not trivial to translate them into the corresponding coordinates on the new master. Global transaction ID solves this by annotating each event with the global transaction id which is unique and universal across the whole replication hierarchy.
In addition, there are at least two other main goals for MariaDB global transaction ID:
- Make it easy to setup global transaction ID, and easy to provision a new slave into an existing replication hierarchy.
- Fully support …
The MariaDB Foundation announcement spawned some
interesting commentary about the state of open source databases.
One recent headline cited the "beleaguered MySQL community." Beleaguered is a
delightful adjective. The OED tells us that it means beset,
invested, or besieged. Much as I like the word, I do not
think it is an accurate or useful description of the MySQL
community. This article and others like it miss the point of what is
happening to MySQL and its users.
Let's start by disproving that the notion that the MySQL
community is beleaguered. I don't …
It is time for christmas presents: some sharding support and cache locality optimizations are coming with PECL/mysqlnd_ms 1.5. PECL/mysqlnd_ms is a plugin for the mysqlnd library. The plugin adds replication and load balancing support to any PHP MySQL API (mysql, mysqli, PDO_MySQL) if compiled to use the mysqlnd library.
As a MySQL user you can choose between a wide variety of clustering solutions to scale-out. Your options range from eventual consistent solutions to strong consistent ones, from built-in (MySQL Replication, MySQL Cluster) to third party or home-grown. PECL/mysqlnd_ms is a client side load balancer that aims to serve all. …
[Read more]
Percona hosted another excellent Percona
Live conference this past December 3-4 in London. It
was my pleasure to deliver 3 talks including the first keynote
following Peter Zaitsev. Percona does a great job of
organizing these conferences--this year's London conference was
well attended and in an excellent location in Kensington.
My thanks to the entire Percona team for putting this
together.
Here are the slides for my talks in case you would like to see
them.
Keynote: Future-Proofing MySQL for the World-Wide Data
Revolution -- Covering the greatly exaggerated death of MySQL
and design patterns for robust MySQL systems that can last for
decades
Talk: …