On Jul 30, 2009, at 6:14 AM, Sean Gillies wrote:
>
> Let's separate the search index rtree was originally designed to be
> from this new storage bucket you're proposing. I think they'll have
> very different users. Separate classes, different (though related)
> interfaces. No unnecessary constraints on each other. I'm not opposed
> to their being in the same namespace, but different modules like
> rtree.index and rtree.storage would be good, IMO.
>

An index doesn't need to be exclusively data-storage or no-data- 
storage.  You can mix index entry insertion with some entries having  
data (pickles in our case) while others don't.  If you wanted to  
refactor the code and tests so these two are separate, I guess I don't  
have a problem with it, but from my perspective, they're conceptually  
the same.

>> What do you mean by reindexing?  I don't have bulk insertion done  
>> yet,
>> but the C API will work by using callbacks.  If there were a
>> straightforward and common tree-walking query that people need, this
>> could be implemented as well.
>
> Say I've bulk loaded, but then reindex items here and there over time.
> If I understand it, this eventually degrades the index. I'd like to be
> able to reindex everything with the same efficiency as a bulk load.
>

We should ask Marios, but I didn't think rtrees degrade.  Are you  
seeing problems?  Do you have any code that might demonstrate it?

What you are asking for is a query strategy that walks the entire tree  
and sequentially returns all of the items in it.  This is fairly  
straightforward to do (but kind of slow).


> I'm not sure how you want to use callbacks. Wouldn't you just pass an
> iterator to the bulk loading function?

Bulk loading operates by having the libspatialindex C++ code call in  
to your application code to fetch items.  libspatialindex presumes  
bulk loading happens with a class that supports an iterator- 
like .next() method, but we can't do such a thing from C.  Callback- 
style code will allow us to have libspatialindex call into Python to  
fetch items, with the assumption that it must be an iterable in a  
certain form (the formatting of the iterator would be controlled by  
the ctypes code).

_______________________________________________
Community mailing list
[email protected]
http://lists.gispython.org/mailman/listinfo/community

Reply via email to