[ZODB-Dev] Does ZODB pipeline load requests?
Dylan Jay
djay at pretaweb.com
Thu Feb 20 01:40:15 CET 2014
On 20 Feb 2014, at 2:27 am, Jim Fulton <jim at zope.com> wrote:
> On Wed, Feb 19, 2014 at 9:57 AM, Dylan Jay <djay at pretaweb.com> wrote:
>> On 19 Feb 2014, at 10:44 pm, Jim Fulton <jim at zope.com> wrote:
> ...
>> yeah I figured it might be the case thats its hard to predict. In this case it's catalog indexing so I was wondering if something could be done with __iter__ on a btree? It's a reasonably good guess that you could start preloading more of those objects if the first few are loaded?
>
> Iterators certainly seem like a logical place to start.
As an example I originally was doing a TTW zope reindex of a single index.
Due to conflict problems I used a modified version of this https://github.com/plone/Products.PloneOrg/blob/master/scripts/catalog_rebuild.py (which I'd love to integrate something similar into zcatalog sometime).
Both use iterators I believe.
I think even if there was an explicit api where you can pass in an iterator, a max buffer length and you'd get passed back another iterator. Then asynchronously objects will load to try and keep ahead of the iterator consumption.
e.g.
for obj in async_load(myitr, 50):
dox(obj)
I don't know how that would help with a loop like this however
for obj in async_load(myitr, 50):
dox(obj.getMainObject())
>
> Jim
>
> --
> Jim Fulton
> http://www.linkedin.com/in/jimfulton
More information about the ZODB-Dev
mailing list