[erlang-questions] Web app back-ends

Garrett Smith <>
Thu Jun 19 00:11:45 CEST 2014


Redis great for a key/value server, and provides several other base
data access patterns (e.g. list and set maintenance).

Don't use this for relational database patterns. It runs in memory
which limits it practically for very large databases.

This is a feature complete Erlang binding:

https://github.com/gar1t/erlang-redis

On Wed, Jun 18, 2014 at 11:21 PM, Lloyd R. Prentice
<> wrote:
> Hello,
>
> Jesse Gumm and I are working on a Nitrogen how-to book. We'd like to BRIEFLY
> point our readers in the right direction when they consider a database
> back-end for their web apps. We understand that this is a much more
> challenging decision than can be addressed without careful analysis. But
> we'd like to provide a conceptual framework to help narrow the field and
> avoid "flavor-of-the-day" snap decisions. Can some experienced Erlangers
> help correct any misperceptions below and fill in blanks. Please, no flame
> wars.
>
> Many thanks,
>
> Lloyd
>
> SQL/Relational Databases:
>
> postgeSQL
> - consider when: you want to use a battle-tested relational data store.
> - reject when: your data needs are more key-value oriented or free form/less
> structured.
>
> MySQL/MariaDB/etc:
> - consider when: You want a SQL datastore that's fast, but that is known to
> take some shortcuts in the name of speed or "ease of use" (such as silently
> truncating strings if too long for fields), and master/slave replication is
> good enough.
> - reject when: Your data needs are more key-value oriented or free form/less
> structured.
>
> NoSQL/Key-Value stores:
>
> ets
> - consider when: speed is a high priority, since it's all data is stored in
> ram, like a cache system
> - reject when: you can afford to lose data, or data needs to be replicated
> across a cluster.
>
> dets
> - consider when: speed is not a priority, since all requests immediately go
> to and come from disk
> - reject when: speed is essential or you need replication.
>
> mnesia
> - consider when: you want built-in clustering/replication, storing Erlang
> records and terms natively, and built into the Erlang system (no
> dependencies needed)
> - reject when: you don't want to mess around with records or QLC.
>
> couchDB
> - consider when _______
> - reject when __________
>
> cowDB
> - consider when _______
> - reject when __________
>
> riak
> - consider when: you need high availability, no-single-point-of-failure,
> replicated clustered key-value datastore.
> - reject when: __________
>
> mongoDB:
> - consider when: https://www.youtube.com/watch?v=b2F-DItXtZs
> - reject when: https://www.youtube.com/watch?v=b2F-DItXtZs
>
> leoFS
> - consider when _______
> - reject when __________
>
> other _________________
> - consider when _______
> - reject when __________
>
> none of the above
> - consider when _______
>
> Sent from my iPad
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list