I want to learn a functional language and Mnesia seems "killer app" enough for me to learn Erlang. I want some concepts clarified first.
How does Mnesia enforce referential integrity on relations? Old articles say that it is not enforced at the data level. Is it changed now? Or does Erlang and Mnesia provide features that allows us to write provably correct and maintainable code for maintaining referential integrity? Even for transitive relations across n tables?
Does the query language support ad-hoc queries, short of full-text?
What about high-capacity distributed systems? There is a 4GB file limit, right? How can I write 10 (or more) million rows to the database? And will it automatically distribute itself to other nodes, so that it becomes high-availability? This has got to do with fragmentation; I want to know if it is an operational concept I have to worry about everyday.
Can it easily configure so that it does replication across physical locations, like a MySQL master-slave setup?
it is several questions:
qlc
module helps you with this task.mnesia:subscribe/1
and Mnesia Event Handling.)