>> I am currently trying to devise a way to index and retrieve some
>> millions of objects according to their modification date/time. One of
>> the problems I'm facing is that of index "granularity": I'd like to
>> provide "to the second" granularity,
> will there ever be more than item with the same key?
Exactly, that's the problem.
>> but for that I need some structure
>> that lets me do that. So, the options I see are:
>> - A timestamp-based
> What do you mean by "timestamp"
Well, it could be a UNIX timestamp.
>> BTree index - looks highly inefficient, as there
>> will be many entries with only one element (probably almost all of
> I have no idea what you mean by this.
That's the problem you've already mentioned above.
So, in a relational DB i would do something like:
SELECT * FROM table WHERE timestamp >= X AND timestamp <= Y
Since I cannot do this with ZODB, I'd have to have a BTree, indexed by
timestamp... however, as you said, if I want "to the second"
granularity, I will rarely have two items with the same key (which makes
it pretty useless).
So, I was wondering if there is some data structure I can use for this,
as this seems to be a pretty common use case.
The first thing that comes to my mind is a tree with different levels -
i.e year, month,day, hour, minute... with the leaves being sets of items.
José Pedro Ferreira
CERN, Geneva, Switzerland
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org