Re: [Haskell-cafe] Datomic-like db for Haskell?

I'll do some research to evaluate my options. So far I have:
Homegrown implementation on top of some DB (Riak/Postgres/Mongo...)
https://github.com/agentm/project-m36
https://hackage.haskell.org/package/filestore
Thanks for the answers!
On Fri, Dec 23, 2016 at 8:07 PM, Ertugrul Söylemez
* Another option is to run an insertion-only relational model on really any database system you want like PostgreSQL. There is nothing about preserving history that needs special handling to be efficient.
I assume that some sort of structural sharing is needed once the collections grow above a certain size. Also some support for caching would be nice.
Yeah, sharing could improve disk usage and cache utilisation. I'm not aware of any DBMS-side sharing features in systems I have used (PostgreSQL and SQLite mainly). The usual way to get sharing in relational systems is to normalise the schema. That also allows you to use domain-specific knowledge to get even better sharing.
Caching is of course supported, at least by PostgreSQL. It aims to keep as much of the database in memory as possible (or as you tell it to).

Would you mind sharing the result of your research with the mailing list
once you're done?
On Sat, Dec 24, 2016 at 4:50 PM Ovidiu Deac
I'll do some research to evaluate my options. So far I have:
Homegrown implementation on top of some DB (Riak/Postgres/Mongo...) https://github.com/agentm/project-m36 https://hackage.haskell.org/package/filestore
Thanks for the answers!
On Fri, Dec 23, 2016 at 8:07 PM, Ertugrul Söylemez
wrote: * Another option is to run an insertion-only relational model on really any database system you want like PostgreSQL. There is nothing about preserving history that needs special handling to be efficient.
I assume that some sort of structural sharing is needed once the collections grow above a certain size. Also some support for caching would be nice.
Yeah, sharing could improve disk usage and cache utilisation. I'm not aware of any DBMS-side sharing features in systems I have used (PostgreSQL and SQLite mainly). The usual way to get sharing in relational systems is to normalise the schema. That also allows you to use domain-specific knowledge to get even better sharing.
Caching is of course supported, at least by PostgreSQL. It aims to keep as much of the database in memory as possible (or as you tell it to).
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (2)
-
Ovidiu Deac
-
Paul Brauner