[ZODB-Dev] Replicating data over disconnected servers.

John D. Heintz jheintz@isogen.com
Sat, 26 May 2001 13:52:47 -0500


On Friday 25 May 2001 15:30, Michel Pelletier wrote:
> On Fri, 25 May 2001, Christian Robottom Reis wrote:
> > On Thu, 24 May 2001, Tim Cook wrote:
> > > May I guess that an export/import solution doesn't work for your
> > > situation?
> > > Or are you attempting something more dynamic?
> >
> > You mean a full export/import of the whole database? Hmmmm. Well, the
> > problem is mainly that there is data (objects) on side A and on side =
B,
> > and only part of that data needs to be updated.
>
> Why not just run a ZEO client on side A and B connected to the same
> database?  That would replicate your objects.  It sounds like you want =
to
> sync two ZEO *servers*.  There is a project on this already:
>
> http://dev.zope.org/Wikis/DevSite/Projects/ZEOReplicatedStorage/FrontPa=
ge

This projects is intended (correct me if I'm wrong) primarily to support =
the=20
High Availability situation.  What I think Tim Cook is looking for is mor=
e=20
the distributed/disconnected/resync problem space that Lotus Notes plays =
in.

>
> > There are semantics on
> > these updates that I have to preserve, and that's why I'm wondering w=
hat
> > the right solution is. That, and me not understanding very well what =
ZODB
> > does with the actual id()s of the objects it's restoring -- I must as=
sume
> > there's some reference rewriting done on-the-fly, but Jim hasn't said=
 so
> > yet.
>
> I can't speak for Jim, but I wouldn't want all those ZODB guts too
> exposed, it's all implementation specific to ZODB.  By exceeding the ZO=
DB
> interface and going into the guts of it you risk future breakage and we
> certainly don't want to look like we're making any promises on how ZODB
> works on the inside.

Dangerous yes, but this is the kind of thing that people claim an RDBMS c=
an=20
do and my GOD you can't bring an OODBMS in here!  How will be back it up?=
=20
=2E..archive records? ...

Actually I am facing a problem right now where I want to selectively arch=
ive=20
some of the objects in my system, or move some Persistent objects to anot=
her=20
Storage so that I can keep only the currently used objects in the local h=
igh=20
speed Storage and older less commonly accessed objects in backup media or=
=20
something.  I am not sure how to do this without getting in the guts of t=
he=20
ZODB.  Any suggestions?


>
> > > Maybe some insight on how you designed your site would help.
> >
> > Well, it's not a site, to start off with. It's a distributed, open
> > source, Point of Sales/Enterprise solution with commerce (not e-comme=
rce,
> > now) as it's main focus. There is a central server that sits in an of=
fice
> > that syncronizes with many stores periodically; these run their own
> > servers and are busy capturing sales objects and updating inventory
> > objects.
> >
> > Now the inventory object must be maintained sincronized with the main
> > database, which means updates must flow to and from that database to/=
from
> > the stores. Since these updates could conflict, there has to be confl=
ict
> > resolution and so forth. _Apart from that_, my object contain referen=
ces
> > to many other objects, so closure has to kept in the sense that these
> > references shouldn't break. Object must preserve referential integrit=
y
> > when moving from store to server.
>
> If you can do it, I advise you to run a ZEO client at each store.  If y=
ou
> can, you can forget about all this.  ZODB does conflict resolution,
> caching, keeps all that id() and reference gunk completely under the ho=
od
> for you and a whole bunch of other stuff.  With minimal hacking you cou=
ld
> probably come up with a robust ZEO client storage that works fairly wel=
l
> even in disconnected mode by caching and reconnecting to "sync" at
> discreet intervals.  Who knows, maybe it can even do that now.  I know
> that it can serve up cached objects even when the connection i down.
>
> -Michel
>
>
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zodb-dev

--=20
=2E . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | jheintz@isogen.com

w w w . d a t a c h a n n e l . c o m