[ZODB-Dev] IStorageIteration
Christian Theune
ct at gocept.com
Mon Feb 11 16:19:41 EST 2008
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 - ct at gocept.com - phone +49 345 122 9889 7 -
fax +49 345 122 9889 1 - zope and plone consulting and development
More information about the ZODB-Dev
mailing list