[ZODB-Dev] Synchronizing Mirror Sites
Norfleet, Sheppard S.
sheppard.norfleet at ngc.com
Thu Jul 24 08:21:29 EDT 2003
I think I have a solution for myself.
Every time an object is modified in the CMF, I will send the object to a
replicator product, where it will be wrapped with metadata, pickled, and
stored. So I need to modify all the CMF form processing scripts like
document_edit.py.
The replicator product will routinely (via outside cron job) check for
updates. On a per object basis, it should simply be a matter of replacing
the old object with the new object, right?
After some thought, I realized that I dont really have to have a merge
capability.
What other drawbacks are there for this approach?
Shep
-----Original Message-----
From: Shane Hathaway [mailto:shane at zope.com]
Sent: Tuesday, July 22, 2003 1:47 PM
To: Norfleet, Sheppard S.
Cc: 'zodb-dev at zope.org'
Subject: Re: [ZODB-Dev] Synchronizing Mirror Sites
Norfleet, Sheppard S. wrote:
> Well this application is a document collaboration tool using CMF,
> CMFStaging, ZopeRepository, CMFPlone, and PloneStaging.
>
> What complications do you forsee pursuing application level replication.
> Should I include another base class in the base content type to support
> replication?
Well, I didn't realize you were working with a large code base. This
kind of replication would require you to change nearly the entire
application. That's probably not feasible unless you can somehow limit
the changes that need to be replicated.
> Also, what are you thoughts on using OracleStorage and Oracle Replication?
That solution might help, but it still won't let you merge changes to
objects. Merging objects requires something that has knowledge of
object internals. Ape is trying to fill that need, but it's not an easy
task.
I would recommend searching for a way to make the problem simpler. If
real-time replication is a possibility (as opposed to intermittent
replication), ZRS or simply ZEO might do the trick. If you can engineer
the application so that nodes write only to specific parts of the
database, you can merge in a coarse-grained way. And if you can throw
big hardware at the problem, that's usually the least expensive solution.
Shane
More information about the ZODB-Dev
mailing list