MySQL replication is asynchronous, but see:
Cluster supports asynchronous replication between separate clusters (or
even mysql instances running another storage engine), but also utilizes
a two-phase commit protocol to keep nodes in sync within a cluster.
This is how it achieves HA.
It sounds as though you're searching for a solution that will scale
beyond your existing single server, and are considering MySQL cluster.
Be warned that a migration to cluster without careful planning and
design may decrease overall throughput compared to other storage engines
due to (for example) the additional overhead of interprocess
communication necessary for cluster operations. A few key questions
- Are other application currently running on your db server that would
limit the system resources available to MySQL?
- Can your hardware easily expand to accomodate growth?
- Is a small percentage of query activity consuming inordinate resources
on your server? If so, could these be offloaded to a replicated server,
such as for report generation?
If the answer to any of these questions is "yes" then you may be find
some additional capacity in your current system without making the jump
to a new storage engine. We've found that it is possible to tweak a
non-HA engine such as innodb to remarkable levels of throughput for
simple workloads--I've witnessed one running at 80k QPS on a synthetic
(test) workload, and another at 15k QPS on actual production systems.
For our needs, scalability was a lesser factor than servicability or
reliability. We needed to periodically restart servers to make
configuration changes, plus, our application needed to be able to
survive loss of any computing node due to hardware failure or OS crash.
Since we went into production with MySQL cluster earlier this year, it
has so far met our needs. There were a few hurdles to pass, but the
hard problem (HA) is solved.
From: sublimino@stripped [mailto:sublimino@stripped]
Sent: Sunday, May 18, 2008 6:56 PM
To: cluster@stripped; replication@stripped
Subject: Recommendations for upscaling
I work for a small business running accounting and business management
software (SaaS) on a single busy server, and we are planning to upscale
to multiple servers. Having synchronous data is vital. In light of this:
Is it possible for a replicated server to be synchronous?
Are slaves run on hardware that is identical to the master?
Can anybody recommend Continuent's middleware?
Apologies for cross posting to the replication and cluster lists.
MySQL Cluster Mailing List
For list archives: http://lists.mysql.com/cluster