[Haskell-cafe] pure Haskell database

Manlio Perillo manlio_perillo at libero.it
Tue Sep 30 09:18:06 EDT 2008


Graham Fawcett ha scritto:
> On Thu, Sep 25, 2008 at 5:09 PM, Manlio Perillo
> <manlio_perillo at libero.it> wrote:
>> Graham Fawcett ha scritto:
>>> If you're on Intel/Itanium, I believe there's a CMPXCHG instruction
>>> that will do atomic compare-and-set on a memory address, and I'm not
>>> sure you could get much faster than that. :-)
>> I have an early draft of this type of database (written in D).
>> Operations on integers use CMPXCHG, and for other operations a simple spin
>> lock (implemented following the implementation in Nginx) is used.
> 
> And I thought I was being original. :-)
> 
>> The problem is that it is a simple shared array!
> 
> I'm guessing you've also ruled out sparse arrays? If not, what
> complexity is acceptable on your lookup function?
> 

Never though about sparse array, what is the advantage?
For the complexity, the same of a good hash map.

 > [...]

By the way, for the moment I think I will use Data.Map, serializing it 
to a file, since only one process will update it, and the other 
processes needs not to read an up-to-date snapshot.
The only thing that needs to be taken care of, is to write the file 
atomically, but this is easy.



Thanks   Manlio Perillo


More information about the Haskell-Cafe mailing list