Database / Mnesia intermediate to advanced Interview questions
What is mnesia:change_config(extra_db_nodes, Nodes) used for?
This call tells the local Mnesia instance about additional nodes it should try to connect and merge schema information with — it's the mechanism behind both joining a brand-new node to an existing cluster and reconnecting a node that was started independently but should now become part of a shared database.
mnesia:change_config(extra_db_nodes, ['nodeb@host', 'nodec@host']). %% -> {ok, ['nodeb@host', 'nodec@host']}
It returns which of the listed nodes it actually managed to connect and merge schema with — not every listed node is guaranteed to succeed, for instance if one is unreachable. This is typically run once during a node's startup sequence (often from an application's startup code or a release's boot script) rather than being called repeatedly during normal operation.
More Related questions...