Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-18 Thread Dr. Thomas Wagner
Hi Chris, hi folks.
thanks for the hint with minimal storage. however the same problem 
occurs with filestorage and is even worse.

we know very well, that we cannot avoid the appearance of conflict 
errors in particular with zeo, and we understand what causes them.

what wonders us is, that we find some contributions about this errors in 
the mailing lists, but no one seems to have a real problem with it. but 
we have! we are not worried about some errors appearing in a log, but we 
are using plone2 witch currently 30 concurrent authenticated users, so 
that this error occurs permanently, thus decreasing system performance 
due to several retries and moreover leading to very frequent nasty 
'POS.Exception Errors' in the browser, whenever four successive tries 
fail (almost every 100. request).

this is not acceptable, and i  wonder wheter there are any plone sites 
with more than a handful of authenticated users that experience the same 
problem.  we found that one (there are more) product responsible for it 
is the placeless translation service, which heavily writes to the session.

so we desperately need a solution for this problem, maybe uncouple the 
session of the locking mechanism or whatever, and this should be a 
problem that should be addressed by the core team. because this is a 
strong reason (and so far the only one) to avoid using zope/plone in a 
large user environment.

i hope some of the community sees the importance of this.
Regards
Thomas

On Thu, 2004-05-13 at 05:23, Gerhard Schmidt wrote:
 

Hi,
whe are running portal unter zope2.7 with one zeo server and six frontend 
application servers. 

I have set up zeo to server two storages
filestorage main
 path $INSTANCE_HOME/var/Data.fs
/filestorage
minimalstorage temp
 envdir $INSTANCE_HOME/var/session
/minimalstorage
temp should provide an shared session. But when is set up the frontends 
to use temp as /temp_folder, we see many  ZODB conflict errors. The 
performance decreases and PosErrors appear quite often. 
   

BDBMininalStorage is no longer maintained and doesn't do any conflict
resolution.  Even though you'll need to pack frequently, you might want
to try a FileStorage instead.
Regardless, using ZEO will presumably always generate more conflict
errors than using a local ZODB because the commit time is longer, and
thus there's a better chance that two threads will be committing at the
same time.
- C
 


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-18 Thread Michael Dunstan
On 18/05/2004, at 6:57 AM, Gerhard Schmidt wrote:
On Mon, May 17, 2004 at 01:38:15PM -0400, Chris McDonough wrote:
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.
Perhaps you can get some relief by using pound as your load balancer. 
It is quite capable at sniffing out user sessions including watching 
the Cookie header. See http://www.apsis.ch/pound/

Michael
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-18 Thread Chris McDonough
Hi Dr. Wagner,

 thanks for the hint with minimal storage. however the same problem 
 occurs with filestorage and is even worse.
 
 we know very well, that we cannot avoid the appearance of conflict 
 errors in particular with zeo, and we understand what causes them.
 
 what wonders us is, that we find some contributions about this errors in 
 the mailing lists, but no one seems to have a real problem with it. but 
 we have! we are not worried about some errors appearing in a log, but we 
 are using plone2 witch currently 30 concurrent authenticated users, so 
 that this error occurs permanently, thus decreasing system performance 
 due to several retries and moreover leading to very frequent nasty 
 'POS.Exception Errors' in the browser, whenever four successive tries 
 fail (almost every 100. request).
 
 this is not acceptable, and i  wonder wheter there are any plone sites 
 with more than a handful of authenticated users that experience the same 
 problem.  we found that one (there are more) product responsible for it 
 is the placeless translation service, which heavily writes to the session.

Are you using ZEO for your session storage or are you using a local
storage?  (You hint at it above but you don't actually say one way or
the other.)

 so we desperately need a solution for this problem, maybe uncouple the 
 session of the locking mechanism or whatever, and this should be a 
 problem that should be addressed by the core team. because this is a 
 strong reason (and so far the only one) to avoid using zope/plone in a 
 large user environment.

I also need reliable sessioning for my own customers, so I am working
towards fixing the issues I know about.  But the issues I know about may
not be the same issues as those that you want fixed.  You can ensure
your issues are addressed by devoting resources towards the problem, be
that time+expertise or money or both.

- C



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-18 Thread Dieter Maurer
Gerhard Schmidt wrote at 2004-5-17 21:01 +0200:
 ...
 However, due to a ZEO weakness, its conflict resolution
 currently does not work (ZEO no longer supports INSTANCE_HOME).

Is that a bug or intetional. 

I expect it to be a bug.

I plan to fix it soon -- but currently, I have lots of things to do.
May take some months...

-- 
Dieter

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-17 Thread Gerhard Schmidt
On Mon, May 17, 2004 at 12:45:16PM -0400, Chris McDonough wrote:
 On Thu, 2004-05-13 at 05:23, Gerhard Schmidt wrote:
  Hi,
  
  whe are running portal unter zope2.7 with one zeo server and six frontend 
  application servers. 
  
  I have set up zeo to server two storages
  
  filestorage main
path $INSTANCE_HOME/var/Data.fs
  /filestorage
  
  minimalstorage temp
envdir $INSTANCE_HOME/var/session
  /minimalstorage
  
  temp should provide an shared session. But when is set up the frontends 
  to use temp as /temp_folder, we see many  ZODB conflict errors. The 
  performance decreases and PosErrors appear quite often. 
 
 BDBMininalStorage is no longer maintained and doesn't do any conflict
 resolution.  

Why this. I was told some time ago we should use BDBMinimalStorage to 
fix the conflict problems. 

 Even though you'll need to pack frequently, you might want
 to try a FileStorage instead.

There is no difference between BDB Storage and Filestorage regarding 
the conflicts. 

 Regardless, using ZEO will presumably always generate more conflict
 errors than using a local ZODB because the commit time is longer, and
 thus there's a better chance that two threads will be committing at the
 same time.

The bottom line is that there is no way of getting an shared session 
running. Why isn´t there an implementation of temporary storage for ZEO 
I dont care about conflit resolution. Its only session data. I simply 
need a shared session storage. But as Far as i can see the is no way 
of doing this. Are we the only site out there running Plone2 (Placeless
transaltion Service) at that scale. How do others handle there Session 

Bye
Estartu 

--
Gerhard Schmidt| Nick : estartu  IRC : Estartu  |
Fischbachweg 3 ||  PGP Public Key
86856 Hiltenfingen | [EMAIL PROTECTED] |   auf Anfrage/
Tel: 08232 77 36 4 ||on request 
Fax: 08232 77 36 3 || 


pgpqXUCWUVwl0.pgp
Description: PGP signature
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-17 Thread Chris McDonough
On Mon, 2004-05-17 at 13:06, Gerhard Schmidt wrote:
  BDBMininalStorage is no longer maintained and doesn't do any conflict
  resolution.  
 
 Why this. I was told some time ago we should use BDBMinimalStorage to 
 fix the conflict problems. 

When was that and who told you so?

  Even though you'll need to pack frequently, you might want
  to try a FileStorage instead.
 
 There is no difference between BDB Storage and Filestorage regarding 
 the conflicts. 

OK.

  Regardless, using ZEO will presumably always generate more conflict
  errors than using a local ZODB because the commit time is longer, and
  thus there's a better chance that two threads will be committing at the
  same time.
 
 The bottom line is that there is no way of getting an shared session 
 running.

It works doesn't it?  You just get conflict errors, right?  Conflict
errors are normal at a certain level.

 Why isnt there an implementation of temporary storage for ZEO

There is, just use the tempstorage package from Zope.
 
 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.

 I simply 
 need a shared session storage. But as Far as i can see the is no way 
 of doing this.

I don't understand.  You seem to have it working.  Is performance the
issue?

  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.

- C



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-17 Thread Dieter Maurer
Gerhard Schmidt wrote at 2004-5-13 11:23 +0200:
 ...
Is there any why to get a shared session working. 

You know that the ZODB is not designed for high frequency
concurrent writes?

When you want to reduce conflicts you will need to try hard
to minimize concurrent writes.

I have a (non-open) Transience implementation that
writes much less then Zope's standard implementation.
However, due to a ZEO weakness, its conflict resolution
currently does not work (ZEO no longer supports INSTANCE_HOME).

-- 
Dieter

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-17 Thread Gerhard Schmidt
On Mon, May 17, 2004 at 01:38:15PM -0400, Chris McDonough wrote:
 On Mon, 2004-05-17 at 13:06, Gerhard Schmidt wrote:
   BDBMininalStorage is no longer maintained and doesn't do any conflict
   resolution.  
  
  Why this. I was told some time ago we should use BDBMinimalStorage to 
  fix the conflict problems. 
 
 When was that and who told you so?
 
   Even though you'll need to pack frequently, you might want
   to try a FileStorage instead.
  
  There is no difference between BDB Storage and Filestorage regarding 
  the conflicts. 
 
 OK.
 
   Regardless, using ZEO will presumably always generate more conflict
   errors than using a local ZODB because the commit time is longer, and
   thus there's a better chance that two threads will be committing at the
   same time.
  
  The bottom line is that there is no way of getting an shared session 
  running.
 
 It works doesn't it?  You just get conflict errors, right?  Conflict
 errors are normal at a certain level.

No It doesn`t. At the Moment we run with single sessions on each frontend
we have rewitten most ob the code using sessions to store ther information 
in cockies. But that´s not realy a good solution. 

  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. 

  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. 

  I simply 
  need a shared session storage. But as Far as i can see the is no way 
  of doing this.
 
 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. 

   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. 

Bye
Estartu

--
Gerhard Schmidt| Nick : estartu  IRC : Estartu  |
Fischbachweg 3 ||  PGP Public Key
86856 Hiltenfingen | [EMAIL PROTECTED] |   auf Anfrage/
Tel: 08232 77 36 4 ||on request 
Fax: 08232 77 36 3 || 


pgpsBoo3UooYb.pgp
Description: PGP signature
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Conflict errors on BDBMinimal storage

2004-05-17 Thread Chris McDonough
On Mon, 2004-05-17 at 14:57, Gerhard Schmidt wrote:
   Why isnt there an implementation of temporary storage for ZEO
  
  There is, just use the tempstorage package from Zope.
 
 I didnt find a way to use Tempstorage in zeo. 
 
 temporarystorage
name temporary storage for sessioning
 /temporarystorage
 
 didnt 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 isnt 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 doesnt 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



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )