Database / Mnesia intermediate to advanced Interview questions
What is the difference between mnesia:transaction/1 and mnesia:sync_transaction/1?
Both give the same atomicity and locking guarantees, but they differ in when they return control to the
caller relative to replication. mnesia:transaction/1 can return as soon as the commit is decided
locally, while replication to other nodes finishes asynchronously in the background.
mnesia:sync_transaction/1 waits until the commit has actually been acknowledged by every involved
replica before returning.
mnesia:sync_transaction(fun() -> mnesia:write(#session{id = 1, user = "ada"}) end).
The practical difference shows up under load: with plain transaction/1, a caller could get
{atomic, ok} back and, in theory, briefly race ahead of replication actually landing everywhere.
sync_transaction/1 removes that gap at the cost of waiting longer per call, which matters when a
caller needs a hard guarantee that a subsequent read from any node in the cluster will already see the write
it just made.
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...
