[erlang-questions] Web app back-ends
Lloyd R. Prentice
lloyd@REDACTED
Wed Jun 18 23:21:19 CEST 2014
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140618/d10060df/attachment.htm>
More information about the erlang-questions
mailing list