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