CALL FOR:
support for fallback in a clustered MySQL configuration

Called by: Johannes Verelst
Total tally on this call (excluding the caller's vote) : 8+

START OF VOTING:   2006-12-04 14:00
END OF CALL:       2006-12-07 14:00

YEA (9/8) : Johannes Verelst*, Michiel Meeuwissen, Andre van Toly, Eduard Witteveen, Ernst Bunders, Kees Jongenburger, Pierre van Rooden, Henk Hangyi, Gerard van Enk

ABSTAIN (0) :

NAY (0) :

VETO (0) :

No votes, assumed abstained (11): Jaco de Groot, Marcel Maatkamp, Daniel Ockeloen, Rob Vermeulen, Rico Jansen, Nico Klasens, Rob van Maris, Mark Huijser, Simon Groenewolt, Peter Maas, Ruud Prein

*)  These votes are not counted towards the tally.

This vote needs a total tally of +3 committer votes in addition to any in favor vote of the vote's caller.


Result:
Call suceeded. Coide can be added.


Johannes Verelst wrote:
CALL FOR:
 Introducing MySQL fallback for clustered MySQL configurations in the
JDBC module (MMBase 1.8)

If all goes well, we (EO) will migrate from Informix to MySQL soon. In
order to have a high-available storage solution with MySQL, we are
implementing master-master replication. You can call it a cluster if
you want; it's just only two database-servers which replicate their
changes to eachother.

In order to maximise the use of this, I would like MMBase to
automatically switch to the other database as soon as a database error
occurs. We are still using the old JDBC MMBase module, and since this
module already supports multiple connectionpools, it's just a matter
of switching pools.

A overview of the code I changed:

- org/mmbase/module/database/
 JDBC.java
 MultiPool.java
 MultiPoolHandler.java
Added support for switching pools: the 'jdbcHost' private variable in
JDBC.java points to the currently active database, and this variable
will be changed when a MultiPool receives an error.
Configuration goes through the '<hosts>' element of jdbc.xml, which
may now be a comma-seperated list of database servers.

- org/mmbase/core/event/
 DatabaseEvent.java
 DatabaseEventBroker.java
 DatabaseEventListener.java
Added a new event that can be propagated to other MMBase servers in
the cluster, to notify them that the cluster should switch to the
other database.

- html/mmbase/admin/admin/*
Enhanced the 'databases' tab in the admin pages, that allows you to
see which pool is active and allows you to choose a pool.

Besides this code, I am also writing a document with information about
mysql master-master replication and MMBase; this will be included with
the hack.

We want to run this in production relatively soon, so therefore I
would like to commit this to the stable branch.


--
Pierre van Rooden
Mediapark, C 107 tel. +31 (0)35 6772815
"Hard work may pay off in the long run, but laziness always pays off right now."
_______________________________________________
Developers mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/developers

Reply via email to