For distributed execution you can look at the recent work on "CloudHaskell":

   https://github.com/jepst/CloudHaskell
   http://groups.google.com/group/cloudhaskell

As for a programming model -- Philip Trinder et. al have a version of monad-par that works in a distributed way over CloudHaskell, likewise CloudHaskell itself provides a simple "Task" layer.

For a NOSQL layer -- I'm looking for the answer to that same question myself!  We've been experimenting with Cassandra (used via the hscassandra package based in turn on cassandra-thrift).  Already it's clear that there are many areas that need work.  The Haskell code generated by Thrift itself has a lot of room for improvement (for the intrepid hacker: cycles there would be well-spent).
   We haven't tried CouchDB yet.  Please keep us posted on what you find.

I don't know if any one has a clean way for hooking a simple Haskell-ish interface (e.g. Data.Map) up to a persistence layer.  But it seems like there have been a bunch of papers on "database supported haskell" and the like.  One of them must have solved this!

    http://hackage.haskell.org/package/DSH

Cheers,
  -Ryan


On Mon, Oct 31, 2011 at 4:53 PM, dokondr <dokondr@gmail.com> wrote:
On Mon, Oct 31, 2011 at 6:50 PM, John Lenz <lenz@math.uic.edu> wrote:
CouchDB works great, although I decided to go with SimpleDB since then it is amazon's problem to scale and allocate disk and so forth, which I like better.  For couchdb, you can use my package couchdb-enumerator on hackage.


Regarding CouchDB. So far I have my records keyed by Id and stored in Data.Map which I serialize to  text file. Using Data.Map functions I do many operations with these records including mapping functions over keys and values, accumulation, lookup, intersection, union etc.
When I move this data to CouchDB and start using couchdb-enumerator to work with it, how natural will it be to implement all these functions that I use from Data.Map? 
Or maybe it makes more sense to store my serialized Data.Map as a blob in CouchDB? And do not use views or similar CouchDB / SimpleDB interfaces at all?  Just retrieve necessary blob and deserialize it to Data.Map, update and then store modified blob to CouchDB again?

It would be great if somebody had time to implement Data.List, Data.Map, etc on top of generic  NoSQL DB interface with specific instances for CouchDB, SimpleDB, etc. 

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe