[ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

2008-07-24 Thread Stefan H. Holek

I have made two checkins to relstorage 1.1 branch:

[1] http://svn.zope.org/relstorage/branches/1.1/?rev=88789view=rev
[2] http://svn.zope.org/relstorage/branches/1.1/?rev=88790view=rev

If someone wants to discuss them this is the thread. ;-)

Ad [1]:
This clearly is not the only problem with temporary tables and  
replication. What the change does, however, is turn a hard error -  
which stops replication in a way requiring operator intervention -  
into a recoverable failure. And all this in an application neutral  
way! Applause here


We hope to tackle the main issue (a.k.a. better-not-use-temporary- 
tables-with-mysql-replication-at-all) in a later installment.


Cheers,
Stefan

P.S.: I am quite excited about the memcached support. Does it just  
work? I.e. can I run my ZODB in RAM now? ;-)


--
Anything that, in happening, causes itself to happen again,
happens again.  --Douglas Adams


___
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


Re: [ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

2008-07-24 Thread Shane Hathaway

Stefan H. Holek wrote:

I have made two checkins to relstorage 1.1 branch:


It's really cool to have another contributor.  Thanks!  1.1c1 has 
already been tagged, so I fixed the change log.



[1] http://svn.zope.org/relstorage/branches/1.1/?rev=88789view=rev
[2] http://svn.zope.org/relstorage/branches/1.1/?rev=88790view=rev

If someone wants to discuss them this is the thread. ;-)

Ad [1]:
This clearly is not the only problem with temporary tables and  
replication. What the change does, however, is turn a hard error -  
which stops replication in a way requiring operator intervention -  
into a recoverable failure. And all this in an application neutral  
way! Applause here


We hope to tackle the main issue (a.k.a. better-not-use-temporary- 
tables-with-mysql-replication-at-all) in a later installment.


Ok.  Conceptually, what we need is a way for each connection to write to 
a scratch table that no other connection can see.  Is there a better way 
to do that than temporary tables?


P.S.: I am quite excited about the memcached support. Does it just  
work? I.e. can I run my ZODB in RAM now? ;-)


I expect the new memcache support to be safe for everyone to use, but we 
still require the main database to be connected at all times, since 
memcache provides no ACID properties by itself.  We unfortunately can't 
do obvious things like cache the current transaction ID for an object, 
since that would break MVCC.  What we do cache is:


1. The current tid, given an oid and the transaction ID that is active 
for the current connection.


2. The pickle given an oid and tid.

These should both help read-heavy databases, but might be detrimental 
for write-heavy databases.  My performance test suite, which writes a 
lot, produced slightly *worse* results with memcache enabled.


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


Re: [ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

2008-07-24 Thread Stephan Richter
On Thursday 24 July 2008, Shane Hathaway wrote:
  P.S.: I am quite excited about the memcached support. Does it just  
  work? I.e. can I run my ZODB in RAM now? ;-)

 I expect the new memcache support to be safe for everyone to use, but we
 still require the main database to be connected at all times, since
 memcache provides no ACID properties by itself.  We unfortunately can't
 do obvious things like cache the current transaction ID for an object,
 since that would break MVCC.  What we do cache is:

 1. The current tid, given an oid and the transaction ID that is active
 for the current connection.

 2. The pickle given an oid and tid.

 These should both help read-heavy databases, but might be detrimental
 for write-heavy databases.  My performance test suite, which writes a
 lot, produced slightly *worse* results with memcache enabled.

We should get Brian Aker into this discussion, since is one of the main 
architects of MySQL and one of the founders of memcached.

As Shane knows, I have some access to Brian these days, so we could have an 
online meeting talking about it.

Regards,
Stephan
-- 
Stephan Richter
Web Software Design, Development and Training
Google me. Zope Stephan Richter
___
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


Re: [ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

2008-07-24 Thread Shane Hathaway

Stephan Richter wrote:
We should get Brian Aker into this discussion, since is one of the main 
architects of MySQL and one of the founders of memcached.


As Shane knows, I have some access to Brian these days, so we could have an 
online meeting talking about it.


Cool.  Memcache could do a whole lot more for us if its API had a notion 
of MVCC.  I think that might not be as complicated as it sounds. :-)


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


Re: [ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

2008-07-24 Thread Wichert Akkerman

Stephan Richter wrote:

On Thursday 24 July 2008, Shane Hathaway wrote:
   
P.S.: I am quite excited about the memcached support. Does it just  
work? I.e. can I run my ZODB in RAM now? ;-)
   

I expect the new memcache support to be safe for everyone to use, but we
still require the main database to be connected at all times, since
memcache provides no ACID properties by itself.  We unfortunately can't
do obvious things like cache the current transaction ID for an object,
since that would break MVCC.  What we do cache is:

1. The current tid, given an oid and the transaction ID that is active
for the current connection.

2. The pickle given an oid and tid.

These should both help read-heavy databases, but might be detrimental
for write-heavy databases.  My performance test suite, which writes a
lot, produced slightly *worse* results with memcache enabled.
 


We should get Brian Aker into this discussion, since is one of the main
architects of MySQL and one of the founders of memcached.

As Shane knows, I have some access to Brian these days, so we could have an
online meeting talking about it.
   


Well, if I can make a suggestion :)

From what I understand a new memcache client library was written for 
MySQL (libmemcache is quite horrible). Python bindings for that library 
would improve many things, including this :)


Wichert.

--
Wichert Akkerman[EMAIL PROTECTED]It is simple to make things.
http://www.wiggy.net/  It is hard to make things simple.

___
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: [Checkins] SVN: zope.component/trunk/src/zope/component/registry.py Correct error in persistance-bbb logic spotted by Jacob Holm

2008-07-24 Thread Benji York
On Thu, Jul 24, 2008 at 1:44 PM, Wichert Akkerman [EMAIL PROTECTED] wrote:
 Log message for revision 88796:
  Correct error in persistance-bbb logic spotted by Jacob Holm

It seems strange (and a bit frightening) that -- ostensibly -- the tests
pass either way the code reads.  Is there a missing test here?

 Changed:
  U   zope.component/trunk/src/zope/component/registry.py

 -=-
 Modified: zope.component/trunk/src/zope/component/registry.py
 ===
 --- zope.component/trunk/src/zope/component/registry.py 2008-07-24 17:32:08 
 UTC (rev 88795)
 +++ zope.component/trunk/src/zope/component/registry.py 2008-07-24 17:44:53 
 UTC (rev 88796)
 @@ -75,7 +75,7 @@
 if provided is None:
 provided = _getUtilityProvided(component)

 -if (self._utility_registrations.get((provided, name)[:2])
 +if (self._utility_registrations.get((provided, name))[:2]
 == (component, info)):
 # already registered
 return

-- 
Benji York
Senior Software Engineer
Zope Corporation
___
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


Re: [ZODB-Dev] indexing

2008-07-24 Thread Tim Cook

On Wed, 2008-07-23 at 11:41 -0400, [EMAIL PROTECTED] wrote:

 I've found the ZODB website to be very disorganized an not nearly as
 helpful as repeated googlings. 

I have been collecting links and writing some new text for the new ZODB
website.  But alas there are only so many hours in the day.  :-)

I am currently running a workshop http://www.oshipworkshop.if.uff.br/
and I will get back onto the ZODB website project after August 1.

My apologies.

Cheers,
Tim



-- 
**
Join the OSHIP project.  It is the standards based, open source
healthcare application platform in Python.
Home page: https://launchpad.net/oship/ 
Wiki: http://www.openehr.org/wiki/display/dev/Python+developer%27s+page 
**


signature.asc
Description: This is a digitally signed message part
___
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