[ZODB-Dev] ZODB 3.9.3 history call causing problems for storages that still accept version parameters

Chris Withers chris at simplistix.co.uk
Thu Nov 19 17:38:26 EST 2009


Chris Withers wrote:
> Jim Fulton wrote:
>> I'm fine with change the storage server to pass the history size
>> argument as a keyword parameter.
> 
> Okay, but where is the Z309 equivalent of ZEOStorage308Adapter's history 
> method?

Ug, the answer is much less pleasant :-(

So, a ZODB 3.9.3 ClientStorage calls the ServerStub's history method, 
this does an rpc call:

self.rpc.call('history', oid, length)

Which comes in on the server and gets despatched straight out in:

/ZEO/zrpc/connection.py", line 581, in handle_request

This, of course, means we can't pull the keyword parameters trick, since 
ZEO's rpc doesn't support keyword parameters from what I saw...

I'm not sure what to suggest here...

- release a new version of zeoraid targeted at zodb 3.9+ that doesn't 
include any version parameters anywhere. (I dunno how Christian would 
feel about the maintenance burden)

- drop support for zodb < 3.9 in zeoraid and remove all version 
parameters. That'd be fine by me, dunno how Christian would feel.

- use some kind of StorageInterface to indicate what parameters a 
storage expects. (this would require work on both zeoraid and zeoraid :-/)

- make zrpc.connection.Connection.handle_request do some fancier work 
around 581 to check what parameters the method is expecting. I worry 
that might impact performance though...

Help?

Chris

-- 
Simplistix - Content Management, Batch Processing & Python Consulting
            - http://www.simplistix.co.uk


More information about the ZODB-Dev mailing list