[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.
Anton
More information about the Haskell-Cafe
mailing list