On 06/01/07 18:35, Joshua D. Drake wrote:
Ron Johnson wrote:
On 06/01/07 17:31, Andrew Sullivan wrote:
On Sat, Jun 02, 2007 at 12:23:44AM +0200, Alexander Staubo wrote:
Could you not (I ask naively) detect the first DDL statement is
submitted in a transaction
Maybe.
on the master, then start a transaction on
each slave, then funnel this and all subsequent statements
synchronously to every nodes, then prepare and commit everyone?
You could if 2PC was ubiquitous, which is certainly wasn't when the
code was designed (remember, it was originally compatible all the way
back to 7.3). Some people suggested using 2PC "if it's there", but
that just seems to me to be asking for really painful problems. It
also entails that all DDL has to happen on every node at the same
time, which imposes a bottleneck not actually currently in the
system.
Since DDL is infrequent, is that bottleneck an acceptable trade-off?
Define infrequent? I have customers that do it, everyday in prod. They
do it willingly and refuse to change that habit.
Even 2 or 3 ALTER TABLE or CREATE INDEX or CREATE TABLE statements
per day is a drop in the bucket compared to the number of I/U/D
statements, no?
--
Ron Johnson, Jr.
Jefferson LA USA
Give a man a fish, and he eats for a day.
Hit him with a fish, and he goes away for good!