[ZODB-Dev] Re: RelStorage now in Subversion

2008-01-31 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Shane Hathaway wrote:
 Hi all,
 
 RelStorage now exists in the Zope subversion repository here:
 
http://svn.zope.org/relstorage/trunk/
 
 I have also created a wiki page:
 
http://wiki.zope.org/ZODB/RelStorage
 
 Testing help and database-specific advice would be appreciated!  With 
 both PostgreSQL and Oracle, all relevant ZODB tests pass and I can 
 create a Plone 3 site, but I haven't tested other Zope applications, 
 more than one machine at a time, or Windows.
 
 Furthermore, I wonder what suggestions any Oracle gurus might have. 
 According to charts I've made, Oracle appears to be leading already in 
 read performance (faster than PostgreSQL and FileStorage+ZEO), but the 
 write performance is plain dismal.  Is it because I'm using two-phase 
 commit?  I don't know.
 
 Anyway, have fun with the code!  A release is planned for the end of 
 February.

I've got a question for you on the removal of the LISTEN / NOTIFY stuff
in the Postgresql adapter:  it looks to me as though your code was not
doing the async check-for-notifies as shown in the 'notify.py' in the
psycopg2 examples:

http://www.initd.org/tracker/psycopg/browser/psycopg2/trunk/examples/notify.py

So, any notifies you got were only capture on the basis of syncrhonous
activity (a cursor doing some other work).  Could that explain the
unreliability which caused you to remove it?  The symptom would be like
the time that the ZEO async stuff got dropped in Zope3 during the
Twisted integration[1]:  a busy client would stay up to date, but an
idle one would serve stale objects from cache.

 BTW, thanks again to Jarn for making this possible.

Yay, Jarn.


[1] http://thread.gmane.org/gmane.comp.web.zope.zope3/15286/focus=15353


Tres.
- --
===
Tres Seaver  +1 540-429-0999  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHogi8+gerLs4ltQ4RAgJ5AJ9f/628xemOrEDYkpvGbaVymB3tTQCfUA8f
sE9qtZwzT77dCStOUkB07JQ=
=VhOU
-END PGP SIGNATURE-

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


[ZODB-Dev] Re: RelStorage now in Subversion

2008-01-31 Thread Shane Hathaway
Tres Seaver wrote:
 I've got a question for you on the removal of the LISTEN / NOTIFY stuff
 in the Postgresql adapter:  it looks to me as though your code was not
 doing the async check-for-notifies as shown in the 'notify.py' in the
 psycopg2 examples:
 
 http://www.initd.org/tracker/psycopg/browser/psycopg2/trunk/examples/notify.py
 
 So, any notifies you got were only capture on the basis of syncrhonous
 activity (a cursor doing some other work).  Could that explain the
 unreliability which caused you to remove it?  The symptom would be like
 the time that the ZEO async stuff got dropped in Zope3 during the
 Twisted integration[1]:  a busy client would stay up to date, but an
 idle one would serve stale objects from cache.

It does appear that a short select() loop is required.  However, I tried
that and learned that notifications have no timeliness guarantees.  The
current model requires strict timeliness of change notification in order
to maintain ZODB consistency.

However, I think we can still take advantage of listen and notify in a
slightly different way.  Currently, the Postgres adapter rolls back the
load transaction on every connection close, but if it instead leaves the
session idle with a transaction open, it would be safe for RelStorage to
sometimes ignore new changes and only roll back and poll after an async
notification arrives.  I could see scalability going way up that way, as
long as Postgres doesn't mind all the idle sessions with an open
transaction.

Shane

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


[ZODB-Dev] Re: RelStorage now in Subversion

2008-01-31 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Shane Hathaway wrote:
 Tres Seaver wrote:
 I've got a question for you on the removal of the LISTEN / NOTIFY stuff
 in the Postgresql adapter:  it looks to me as though your code was not
 doing the async check-for-notifies as shown in the 'notify.py' in the
 psycopg2 examples:

 http://www.initd.org/tracker/psycopg/browser/psycopg2/trunk/examples/notify.py

 So, any notifies you got were only capture on the basis of syncrhonous
 activity (a cursor doing some other work).  Could that explain the
 unreliability which caused you to remove it?  The symptom would be like
 the time that the ZEO async stuff got dropped in Zope3 during the
 Twisted integration[1]:  a busy client would stay up to date, but an
 idle one would serve stale objects from cache.
 
 It does appear that a short select() loop is required.  However, I tried
 that and learned that notifications have no timeliness guarantees.  The
 current model requires strict timeliness of change notification in order
 to maintain ZODB consistency.
 
 However, I think we can still take advantage of listen and notify in a
 slightly different way.  Currently, the Postgres adapter rolls back the
 load transaction on every connection close, but if it instead leaves the
 session idle with a transaction open, it would be safe for RelStorage to
 sometimes ignore new changes and only roll back and poll after an async
 notification arrives.  I could see scalability going way up that way, as
 long as Postgres doesn't mind all the idle sessions with an open
 transaction.

Hmm, I think I read that NOTIFY events are only delivered between
transactions, which would make that strategy unworkable.  It might
satisfy the timeliness / ordering problem you mention above, though.


Tres.
- --
===
Tres Seaver  +1 540-429-0999  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHojzk+gerLs4ltQ4RAmHXAKC3DWecX3L+EbH92yNsZpeqoxDx2QCfcIEy
Hwg0wQPK3UoaMV9YxUmd3UQ=
=/vNj
-END PGP SIGNATURE-

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev