Erlang / Erlang Basics Interview questions
What is Mnesia?
Mnesia is Erlang's built-in distributed database, layered on top of ETS/DETS storage. Unlike ETS, Mnesia adds transactions, replication across nodes, and optional disk persistence, so multiple nodes in a cluster can share and safely update the same tables.
mnesia:create_table(person, [{attributes, record_info(fields, person)}]), mnesia:transaction(fun() -> mnesia:write(#person{name = "Ada", age = 34}) end).
Because table rows are ordinary Erlang records/terms and queries are written in Erlang itself (or via
mnesia:select/2 match specifications), there's no separate query language to learn the way SQL
sits apart from application code.
It fits well for cluster-local configuration and session data where you want ACID-ish transactions without standing up an external database, though very large datasets or complex relational queries are usually better served by a dedicated external database.
More Related questions...