[Haskell-cafe] Re: pure Haskell database

Anton van Straaten anton at appsolutions.com
Thu Sep 25 15:06:33 EDT 2008

Achim Schneider wrote:
> "Rich Neswold" <rich.neswold at gmail.com> wrote:
>> On Thu, Sep 25, 2008 at 11:09 AM, Manlio Perillo
>> <manlio_perillo at libero.it>wrote:
>>> But this works only if the database is used by only one process.
>> Ah. When you said "concurrent safe", I thought you meant within the
>> application. You're looking for something like
>> this<http://hackage.haskell.org/cgi-bin/hackage-scripts/package/anydbm>
>> .
> Or even HApps-State (http://happs.org/) for moar 0v3rk1ll, of which you
> can never ever have enough.

HAppS-State doesn't currently solve the problem of the database being 
used by more than one process (does it?)  In the current stable version, 
it basically maintains its data in-memory and keeps a checkpointed 
transaction log.

This can be used with a "sharded" approach where each process manages 
its own little chunk of the data, which can work well for certain data 
access patterns.  But if you want each process to have access to a 
common database, HAppS-State currently only gives you the low-level 
building blocks for that.

I understand that there are plans and prototypes and work being done on 
more sophisticated features, like multi-master replication, but I don't 
think anything like that is usable today.

Depending on the application requirements, it might be simple enough to 
implement a custom data access layer over a set of happs shards to do 
things like retrieve individual values that aren't in the current 
process, or perhaps do a MapReduce-style operation over all processes. 
But there's nothing like that out of the box, yet.


More information about the Haskell-Cafe mailing list