[Zope-dev] Conflict errors on BDBMinimal storage
Chris McDonough
chrism at plope.com
Mon May 17 15:10:48 EDT 2004
On Mon, 2004-05-17 at 14:57, Gerhard Schmidt wrote:
> > > Why isn´t there an implementation of temporary storage for ZEO
> >
> > There is, just use the "tempstorage" package from Zope.
>
> I didn´t find a way to use Tempstorage in zeo.
>
> <temporarystorage>
> name temporary storage for sessioning
> </temporarystorage>
>
> didn´t work. How do i Set up a temporarystorage in zeo.
Good question. ;-) It involves changing the ZEO configuration machinery
to recognize the tempstorage package. The steps to do this I couldn't
tell you without actually doing it, however.
> > > I dont care about conflit resolution. Its only session data.
> >
> > For better or worse, because it is based on ZODB, the implementation
> > makes you need to care.
>
> Than maybe the sessioncode should be redesigned not to use ZODB as
> storage but store ther information in some different system maybe
> a RDMB or some other system able to handle the kind of usage.
Zope doesn't ship with a useful and maintained relational database. You
can implement your own SQL-based TransientObjectContainer using the
interfaces defined in Transience/Interfaces.py if you wish, or use
Anthony Baxter's SQLSession product. It would be nice if there was an
alternate implementation that used a relational database like this.
> > > I simply
> > > need a shared session storage. But as Far as i can see the is no way
> > > of doing this.
Of course there is, it's just not built in. ;-)
> >
> > I don't understand. You seem to have it working. Is performance the
> > issue?
>
> The Performance decrase is there but the Problem is far deeper. If
> an read conflict isn´t resolved after three retries an Exception is
> raised an the request is aborted. And thats the real problem.
I see. I'm not sure switching to TemporaryStorage will help much. I
would first try using a FileStorage and make sure to put the Zope
"lib/python" directory on the ZEO server's Python's PYTHONPATH (to allow
for conflict resolution under ZEO, ZEO must be able to import the
Products package and subpackages therein). I don't know if this will
help very much, but it's worth a shot.
> > > Are we the only site out there running Plone2 (Placeless
> > > transaltion Service) at that scale. How do others handle there Session
> >
> > AFAIK Zope is the only appserver that even makes an attempt at allowing
> > session data to be shared between servers like this. Most other
> > appservers require you to set up "session affinity" in your load
> > balancer and have a session database on each appserver.
>
> and nealy every system failed to do so. How do you implement this
> session affinity. Based on source IP. At the moment every large ISP
> uses multiple Proxyserver so every request comes from a different
> IP so the affinity doesn´t work for them. The Proxyserver provided by
> our Computing Center is also split on at least 8 Hosts, so everyone
> using this proxy would lose session infomation, getting very strange
> effekts.
Yes. It's a hard problem.
- C
More information about the Zope-Dev
mailing list