When you set-up the same software several times (for you or for
your customers), you want that software to install quickly and
reliably, and you are generally happy when everything works as
expected.
In this context, a failing installation is when the
installation process exits unexpectedly, and you are left with an
error message and the prospect of looking at the manual to find
out what was it.
A failing installation is unpleasant, you'd say, and I concur.
But do you know what's more unpleasant than a failing
installation? It's an installation that succeeds, only to fail
silently the first time you try using the application.
Looking at this enhanced definition, it is no surprise that I
assert to find happiness in failure. And I have practical reasons
for my claim. When I first tried Tungsten
Replicator installation, it succeeded. And to my …
| It has been a bumpy ride, with dozens of issues opened and resolved, but we finally feel that Tungsten Replicator 2.0.4 is ready for prime time.There have been quite a lot of changes. Most notably, the replicator is much faster, especially when it comes to parallel replication, and it is much easier to install, thanks to its new integrated installer, which can validate all the requirements to install the replicator, and suggest remedies when the requirements aren't met. This new installer is so good, in fact, that calling it installer is an insult. It is a legitimate cluster builder, able to install a full fledged cluster from a central location. |
Probably …
[Read more]I’ve been following the development of Tungsten Replicator for quiet some time now, and recently was fortunate enough to find the time to take a look at the product in more detail. If you haven’t heard of Tungsten Replicator yet, it’s an open source database replication engine that can be used to complement or completely [...]
MySQL Replication is a powerful tool and it’s hard to find a
production system not using it. On the other hand debugging
replication issues can be very hard and time consuming.
Especially if your replication setup is not straightforward and
you are using filtering of some kind.
Recently we got an alert from our monitoring system that
replication stopped on production slave with the following error:
Can't find record in 'some_table', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log binlog.000011, end_log_pos 735766642
This means that a ROW-based replication event was going to be applied on slave, but could not find the row it was supposed to be applied to. This is something I like about ROW format — it allows you to catch such data synchronization issues right away. In this particular case MIXED format was used, but if this event was written in STATEMENT format, slave would just apply it …
[Read more]
Earlier this month I published an article on this blog describing
the system of record approach to multi-master
replication. As mentioned in that article my colleagues
and I at Continuent have been working on improving Tungsten to
make system of record design patterns easier to implement.
This article describes how to set up system of record using
Tungsten Replicator shard filters, which are a new
feature in Tungsten 2.0.4. By doing so we will create a
multi-master configuration that avoids replication loops and
transaction conflicts. On top of that, it is quite easy to
set up.
There are many possible system of record patterns depending on
how many schemas are shared and across how many masters.
The following diagram …
My recent post on setting up Tungsten parallel replication in a
hurry got a lot of hits, though to be fair it was
probably not the great writing but the fact that at least one
popular MySQL blog posted a link to it.
(Thanks, we like you guys too.) Anyway, I would like
to invite anybody who is interested in parallel replication to
attend a webinar on Thursday September 1st at 10am
PDT to cover installing and using Tungsten. It's
straight-up technical talk to help you start quickly.
Bringing up Tungsten on an existing MySQL slave only takes a few
minutes, so once we have that out of the way I will explain how
Tungsten works inside and show you some …
Multi-master database systems that span sites are an increasingly
common requirement in business applications. Yet the way
such applications work in practice is not quite what you would
think from accounts of NoSQL systems like Cassandra or SQL-based systems like Oracle RAC. In this article I would like
to introduce a versatile design pattern
for multi-master SQL applications in which individual
schemas are updated in a single location only but may have many
copies elsewhere both locally as well as on other sites.
This pattern is known as a system of record architecture. You can build
it with off-the-shelf MySQL and master/slave replication.
Let's …
Why This Post
While testing Yoshinori Matsunobo's MHA agent I found that
although the wiki has a very complete documentation, it was
missing a some details. This article intends to close that gap
and bring up some issues to keep in mind when you do your own
installation. At the end of the article I added a
Conclusions section, if you're not interested in the
implementation details, but to read my take on the project, feel
free to jump straight to the end from here.
My Test Case
Most of our production environments can be simplified to match
the MHA's agent most simple use case: 1 master w/ 2 or more
slaves and at least one more slave in an additional tier:
Master A --> …[Read more]
A previous article on this blog described Tungsten parallel replication using on-disk
queues. On-disk queues are now more or less finished,
and I just closed the covering issue for the feature. The work
is bug fixing and performance testing from here on out.
Speaking of performance, that looks fairly good. A
recent on-site test using production workloads showed 3.3X
improvement over native MySQL replication while holding resources
like memory down to much more reasonable levels than in-memory
queues. We have further optimizations on the way, so this
should improve.
Now that parallel replication is working a lot better, what is it
good for? Here is a good start: assuming your …
If you love a software product, you should try to improve it, and not be afraid of criticizing it. This principle has guided me with MySQL (where I have submitted many usability bugs, and discussed interface with developers for years), and it proves true for Tungsten Replicator as well. When I started working at Continuent, while I was impressed by the technology, I found the installation procedure and the product logs quite discouraging. I would almost say disturbing. Fortunately, my colleagues have agreed on my usability focus, and we can enjoy some tangible improvements. I have already mentioned the new installation procedure, which requires just one command to install a full master/slave cluster. I would like to show how you can use the new installer to deploy a multiple source …
[Read more]