3 ms·
tl;dr: The Actor model of concurrency used in Erlang doesn't lend itself well to key/value caches. The fact that Mnesia isn't mentioned once indicates the auth
by asymptotic 15y ago
tl;dr: The Actor model of concurrency used in Erlang doesn't lend itself well to key/value caches.
The fact that Mnesia isn't mentioned once indicates the author is insufficiently knowledgeable about Erlang to write an informed article. This isn't an ad hominem attack because he didn't even mention Mnesia, hence this is an attack on the content of the article rather than his credentials.
(This rather anal mention of ad hominem is relevant because the author brings it up in the comments).
To those that follow, you'll learn more reading:
Erlang - mnesia (Erlang documentation)
http://www.erlang.org/doc/man/mnesia.html http://www.erlang.org/doc/man/mnesia.html
CAP theorem
https://secure.wikimedia.org/wikipedia/en/wiki/CAP_theorem https://secure.wikimedia.org/wikipedia/en/wiki/CAP_theorem
And, of course, if you want to use something that someone has "just done", you would simply use Riak, which uses Erlang to implement an Amazon Dynamo type distributed key-value store:
http://wiki.basho.com/ http://wiki.basho.com/
Not that difficult. A few Google's and you're set.
EDIT: On reading my post I realise that Mnesia is an OTP application, rather than an Erlang built-in, and that Riak is an Erlang-based 3rd party library. However, using canonical libraries is part-and-parcel with learning about a language, IMO.
- jerf 15y agoMNesia is basically a built-in, inasmuch as I'm not sure you can find an Erlang install anywhere that doesn't have it (barring somebody going in and specifically plinking it). It ships in the open source release. (OTP application just means that it conforms to the OTP interfaces, so for instance you can "application:start(mnesia)", or depend on it in other OTP applications such as ones you've authored, etc.) Riak is legitimately a third party library, but does provide an existence proof that the specific problem chosen to highlight Erlang's weaknesses does still seem to work. That said, the author has a point. But by privileging actors as much as it does, Erlang gets a lot of great stuff out of it that have no effective competition in other languages, OTP in particular. Haskell may offer every sensible concurrency construct under the sun, but you don't get OTP to speak of. (Some efforts are underway, but they are new and I'd be surprised if they are stable yet.) Erlang is definitely niche, but it fits that niche very well and the niche is larger than it may initially appear... but it certainly isn't the best choice for all purposes. Nothing is, and nothing can be. The argument is a bit klunky but the point is still ultimately correct.