Database / Mnesia intermediate to advanced Interview questions
How do you merge two previously-separate Mnesia clusters into one?
Mnesia doesn't provide a single built-in "merge two schemas" command — merging two independently created databases is a deliberate, mostly manual migration process, since each side already has its own complete schema and potentially overlapping table names or keys.
%% typical approach: export data from cluster B, import into cluster A mnesia:backup("/tmp/cluster_b_backup.bak"), %% on cluster A, restore selectively: mnesia:restore("/tmp/cluster_b_backup.bak", [{default_op, keep_tables}]).
The practical approach is usually: back up the data you want to bring over from the smaller/secondary cluster, then restore it into the target cluster with restore options chosen carefully to avoid clobbering tables that already exist there, resolving any key collisions in application code rather than relying on Mnesia to reconcile them automatically. For genuinely live merges (both clusters staying up throughout), this typically means a staged migration table-by-table, rather than attempting a single atomic cutover.
More Related questions...