[ZODB-Dev] ZODB + RelStorage FailOver
Shane Hathaway
shane at hathawaymix.org
Wed Jun 4 18:45:02 EDT 2008
Maxence DUNNEWIND wrote:
> I'm working on some zope based cluster. The network schema can be found
> at http://people.dunnewind.net/maxence/cluster3.png .
> All the database part (the red/pink parts) are managed with postgresql
> (with replication).
The relationships between the databases in the diagram are unclear. Let
me take a guess at what it means. There is one logical database but
three database servers. The solid arrows represent synchronous
replication and the dashed arrows represent asynchronous replication.
All commits eventually get reflected throughout the cluster.
If that's right, I don't see how it can actually work correctly with
most ZODB applications (especially Plone and anything that uses ZCatalog
or BTrees). It will produce massive data corruption. OTOH, maybe I
didn't understand the diagram correctly.
Incidentally, I don't think it's wise to push RelStorage beyond simple
slave replication (one master with multiple slaves) at this time. I
think multi-master replication is possible, but would require careful
thought, trade-offs, and site-specific configuration.
> My problem is : I would that each zope server uses mainly one pgsql
> server (like on the picture). Anyway, if one of the database server
> fails, then I would than zope/zodb/relstorage switch to another database
> server, and go back to his server when it will be back.
>
> Any idea to make that with zodb/relstorage ?
> At the moment, the only idea I have is to use an external check/watchdog
> service which change the config file and reload zope in case of database
> problem.
You could achieve this with iptables or a load balancer like Linux
Virtual Server, but again, be sure your replication strategy makes sense
before going down this road.
Shane
More information about the ZODB-Dev
mailing list