[Grok-dev] Re: Scalability of annotations?

Martijn Faassen faassen at startifact.com
Wed Jan 2 13:39:40 EST 2008


Wichert Akkerman wrote:
> Previously Sebastian Ware wrote:
>> Merry Christmas... no snow in Stockholm, but there are plenty of  
>> Christmas trees :)
>>
>> Anyway, I am wondering a bit about the scalability of annotations. If  
>> I use annotations as an edit history, will I run into scalability  
>> problems after say 100k edits? Say that each edit requires 5kb of data.
> 
> If memory serves me correctly annotations are lazily loaded btrees, so
> they should scale quite well. 

I just examined the source and that's correct; keys and values are 
stored in BTrees. I don't think BTrees are very relevant here though, as 
Grok's Annotation base class uses annotation factories, and this 
generates a single key on the fly.

That said, an annotation object is a persistent object like any others 
in the ZODB. That means that changing it shouldn't normally conflict 
with other objects. You're free to use advanced data structures like 
BTrees inside of a particular annotation to store edit history objects 
as independently persistent objects, to further avoid conflicts. (these 
BTrees are unrelated to the BTrees inside the annotation mechanism; it'd 
just be a way you could construct the application)

> There is of course no substitute for a benchmark to test your specific scenario.

Fully agreed.

Regards,

Martijn



More information about the Grok-dev mailing list