Erlang / Erlang Advanced Interview questions
Why is Mnesia's two-phase commit necessary for distributed transactions?
When a Mnesia transaction writes to tables replicated across multiple nodes, every replica must end up agreeing on the outcome — either all of them commit the change, or none of them do. Without coordination, a network hiccup could leave one node having applied the write while another hasn't, silently corrupting replica consistency.
sequenceDiagram
participant Coord as Coordinator node
participant N1 as Replica 1
participant N2 as Replica 2
Coord->>N1: prepare (can you commit?)
Coord->>N2: prepare (can you commit?)
N1-->>Coord: yes
N2-->>Coord: yes
Coord->>N1: commit
Coord->>N2: commit
In the prepare phase, the coordinating node asks every replica whether it can apply the change (data validated, locks acquired); only if every replica agrees does the coordinator send the actual commit phase, telling all of them to make it permanent. If any replica can't prepare (a conflicting write, an unreachable node), the whole transaction aborts everywhere rather than partially applying — this is what gives Mnesia its ACID-style guarantee across a cluster instead of just on a single node.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
