4 ms·
Who the heck is using mnesia? I've never used an elixir codebase that uses it, and it's (I believe) considered to "not be best practices".. not the least of wh
by throwawaymaths 4y ago
Who the heck is using mnesia? I've never used an elixir codebase that uses it, and it's (I believe) considered to "not be best practices".. not the least of which is because it's well known that mnesia can lose data irrecoverably.
- jtokoph 4y agoI know nothing about it but just the name itself is warning enough to say away. Amnesia…
- di4na 4y agoyou realise that "mnesia" means "memory", hence "amnesia" for "no-memory" ? So Mnesia should be the most reassuring word you could get from a db. This is a total aside from its technical considerations mind you, i usually do not advise mnesia :)
- toast0 4y agoPeople say a lot of stuff about mnesia, but it worked pretty well when I was at WhatsApp. We had some patches as mnesia wasn't tuned for the load we gave it, but it was pretty amenable. I don't recall any data loss issues that were mnesia's fault; maybe sometimes we had too much data to properly dump to disk and we chose to truncate files and hope things would work out, and when they didn't data was lost; mnesia may be a contributing factor, but lots of databases do bad things when you write more data than your disk can hold. We did a lot of things that fell outside of 'best practices' though: no transactions, dirty reads and writes, for many years rejoining after netsplits without reconciliation, disabling database dumps sometimes and cowboy operations schemes to try to resume normal operations afterwards despite having insufficient space, etc. Having data in the same process as the software that manages it is immensely powerful and it would be foolish to give that up when your data fits the model available.