A new version of PBMS for drizzle has been pushed up to
launchpad:
drizzle_pbmsV2
I have rewritten PBMS and changed the way that BLOBs are
referenced in order to make PBMS more flexible and to fix some of
it's limitations. I have also removed some of the more confusing
parts of the code and reorganized it in an attempt to make it
easier for people to find there way around it.
So apart form some cosmetic changes what is different?
Maybe the best answer would be to say what hasn't changed: the
user and engine API and the way in which the actual data is
stored on the disk remains pretty much unchanged, but everything
else has changed.
The best place to start is with the BLOB URL, the old URL looked
like this:
"~*1261157929~5-128-6147b252-0-0-37" the new URL looks …
This was a request yesterday on a mailing list about how to I block DROP statements from running on a slave. There were responses including MySQL could not do this, or try other replication technologies however I thought I would share how you can easily do this on a slave.
You simply deny access on the slave. It is as simple as changing the MySQL privileges for the user(s) in question to remove DROP or ALTER capabilities.
Of course this will break replication rather then simply ignore the statement however I suspect that is the intended goal anyway. The first statement that uses the table will fail regardless. With appropriate monitoring of replication you should know in about 15 seconds. (Hint: If you don’t monitor replication or monitor it frequently, DO SO NOW!)
These leads to the question, what if the statements are legitimate? There are several solutions. Enable the specific privileges on the slave when the DBA …
[Read more]
There have been a couple of recent blog articles (here and here) asking for parallel replication based on
something other than schemas. These articles both focus on
the problem of parallelizing updates within a single MySQL
schema. I read these with great interest, not least
because they both mentioned Tungsten (thanks!) and also found that
our schema-based parallelization approach is too limited.
It is therefore worth a short article explaining exactly
what the Tungsten approach is and why we chose it.
First of all, Tungsten does not exactly use schema-based parallel
replication. Tungsten …
Last month my colleague Giuseppe Maxia described how to operate Tungsten parallel replication.
Since then we have been doing a good bit of benchmarking on both
synthetic as well as real production loads. In this article I
would like to follow up with some tips about how you can goose up
parallel replication performance. These apply to Tungsten
Replicator 2.0.1, which you can find here.
The first way to get good performance with Tungsten is to have
the right workload. As explained in an earlier article on this blog, Tungsten
parallel replication works by replicating …
I talked about parallel replication last month. Since then,
there has been a considerable interest for this feature. As far
as I know, Tungsten's is the only implementation of this much
coveted feature, so I can only compare with MySQL native
replication.
The most compelling question is "how fast is it?"
That's a tricky one. The answer is the same that I give when
someone asks me "how fast is MySQL". I always say: it
depends.
Running replication in a single thread is sometimes slower than
the operations in the master. Many users complain that the single
thread can't keep up with the master, and the slave lags behind.
True. There is, however, a hidden benefit of single threaded
replication: it requires less resources. There is no contention
for writing on disk, no need to worry about several users
blocking a …
Replication enables data from one MySQL server to be replicated on one or more other MySQL servers. Replication is mostly used as scale-out solution. In such a solution, all writes and updates take place on the master server, while reads take place on one or more slaves. This model is actually known as master-slave replication and this is the kind of replication that I will be setting up in this post.
If you follow Giuseppe Maxia's Datacharmer
blog you have seen several recent articles on Tungsten Replicator. Giuseppe and I work
closely together on replication at Continuent, and I have
promised a matching set of articles about replication internals
that match the practical introduction provided by Giuseppe.
In this first article I will describe replication
services, which are message processing flows that run in the
Tungsten Replicator.
Unlike many replication engines, Tungsten Replicator can run
multiple replication services concurrently. There is a
central management interface that allows you to start new
replication services without disturbing services that are already
running. Each replication service also has its own
management interface so that …
After part I: the basics, and part II: parallel apply, we deal now with some
more mundane topic, or how to deploy replication services in a
way that they fit our business, covering from the basic
master/slave to the most advanced multi-source scheme.
Master/slaveThe most common topology is master/slave. One master,
many slaves. This topology is equivalent to MySQL native
replication. The differences are in the additional features.
Tungsten supports seamless failover and parallel replication in
all topologies.
Figure 1. Tungsten master/slave replication
Unlike MySQL, and unlike previous versions of Tungsten, the
implementation of this topology uses a dedicated service for the …
I hope you liked the first part of this series of lessons. And
I really hope that you have followed the instructions and got
your little replication cluster up and working. |
If you haven't done that, thinking that you would spare your
energies for more juicy matters, I have news for you. What I
explained in the previous part is exactly what you need to do to
set up parallel replication. With just a tiny additional
detail.
For the sake of the diligent readers who have followed the
instructions with the first lessons, I won't repeat them, but
I'll invite you to set the environment as explained in the first
part.
Once you have a cluster up and …
These are exciting times for the Drizzle team. We just released our first RC and things are finally coming together into some awesome new features. I’m excited to bring you latest news from the replication front:
Where to begin? Well, many moons ago, Brian sent David Shrewsbury and myself out on the task of making the transaction_log plugin rock solid. This plugin provides a file-based log that captures the server’s state via protobuf messages. After much blood, sweat, and tears (and *many* bugs), we accomplished our task with *plenty* of help from …
[Read more]