[elephant-devel] Re: Lisp backend

Ian Eslick eslick at media.mit.edu
Mon Mar 3 01:05:16 UTC 2008


>> It's easy enough to find a reference
>> implementation of a B+Tree and re-implement it; as long as we've
>> thought through all the tradeoffs (I think Henrik made this point).
>
> Speaking of which, I think the Right Thing is developing the B+Tree
> library separately from Elephant, so others will be able to use it
> and to achieve weak coupling.

Definitely!  It's also one good place to split the work up among  
several contributors so the whole project doesn't fall on one primary  
developer!

>> The other approach to fine-grained locking is to use speculative
>> concurrency (roughly what Rucksack calls versioning).  This means  
>> that
>> we assume there are no conflicts, don't bother to lock anything,  
>> copy-
>> on-writes and invalidate transactions at commit time that do have
>> conflicts (i.e. that read and operated on anything that was written).
>
> I believe the canonical term for this is "Optimistic Concurrency  
> Control".

Quite right!

We should move this discussion to the wiki and start capturing  
requirements, a basic decomposition, and some design decisions to make.

See:
http://trac.common-lisp.net/elephant/wiki/DesignTradeoffs
   http://trac.common-lisp.net/elephant/wiki/LispDataStore

Ian





More information about the elephant-devel mailing list