Jim Fulton schrieb: > > On Feb 11, 2008, at 1:25 PM, Christian Theune wrote: > >> Hi, >> >> Jim Fulton schrieb: >>> On Feb 11, 2008, at 1:19 PM, Christian Theune wrote: >>> ... >>>>>> Also, this code isn't ZEO-compatible (apart from the fact that >>>>>> ClientStorage doesn't implement the interface). >>>>> How so? >>>> >>>> As far as I understand, ZEO can't pass iterators around directly but >>>> needs to provide at least some wrapping code on the protocol level ... >>> Good point. This, at least, makes the implementation rather tricky. >> >> There is the pattern like undoInfo/Log and record_iternext which >> provides context by passing in ranges of records to return + tolerance >> for ranges that don't exist. > > > I don't think that's going to work here. Iterating through the > transactions in the database for each iteration is going to be totally > non-scalable.
Yes, you're right. Still, the road of providing call context via a parameter seems better to me than to enhance the ZEO protocol to account for this purpose. > I suppose you could include file positions in the iterator state, > although that makes me a little uncomfortable. It might be OK here though. Context could be given as a reference date that is opaque to the client and can differ from storage to storage, a file pointer could serve this purpose. The API still might include the `length` of the data returned to minimize round-trips. Christian -- gocept gmbh & co. kg - forsterstrasse 29 - 06112 halle (saale) - germany www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 - fax +49 345 122 9889 1 - zope and plone consulting and development _______________________________________________ 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