In the current ZODB, the ZEO ClientStorage has a method syn which is not
described by any of the ZODB's interfaces. It does nothing, and other
storages don't have that method at all. OTOH, the only place it is invoked
seems to be in Connection code that is not specific to the ClientStorage
and has to test for the existence of the sync method first.
- Is this method really needed?
- If yes, why not declare it in a dedicated interface that is then
implemented by the ClientStorage, and test whether that interface is
implemented by the storage at hand instead of trying to getattr() the sync
method? If it is because of the way the ZEO RPC works, couldn't the test
for existence of the sync method on the ZEO server be made by the
ClientStorage's sync method?
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org