[erlang-questions] Can Mnesia replace conventional RDBMS?
Sun Jun 2 20:02:29 CEST 2013
I don't think the documentation says that (at least I can't find it).
If you keep data in ram_copies or disc_copies, and run a 64-bit VM, tables can be larger than that. How much data you can have in practice will e.g. depend on your tolerance for long startup times (disc_copies must be loaded into RAM at startup).
Disc_only_copies are in fact limited to 2 GB, and you _really_ don't want to exceed that, as mnesia doesn't have a nice way of handling errors at that level - the result will likely be inconsistencies in the database. And even if you fragment your disc_only_copies tables, Dets repair can result in unacceptably long restart times. You need to measure and consider your requirements.
Mnesia is a very different beast from Oracle et al. It shines as a low-latency RAM database (with optional persistency), esp. in applications where the access patterns are well known at design-time. Oracle, for example, sacrifices response time for throughput, and adds overhead with e.g. query optimization, which is a good deal if your queries are ad-hoc or you have tons of data and prefer to defer search strategies to the database itself.
On 2 Jun 2013, at 10:19, Yash Ganthe wrote:
> The Mnesia documentation says:
> largest possible mnesia table (for now) is 4Gb
> A table can be distributed across nodes so that part of it remains on one node and part on another. In a distributed sense, does this mean 4GB per table per node, or 4GB per table across nodes?
> Is there a way by which Mnesia can be used in a system that will store about 100GB of data in some tables and support ACID properties just like popular RDBMS's like MySQL/Oracle?
> erlang-questions mailing list
Ulf Wiger, Co-founder & Developer Advocate, Feuerlabs Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions