Database / Mnesia intermediate to advanced Interview questions
Why is batching multiple related writes into a single transaction usually better than many small transactions?
Every transaction carries fixed overhead beyond the actual work it does: acquiring locks, and for replicated tables, coordinating a two-phase commit round-trip with every replica. Running ten related writes as ten separate transactions pays that coordination overhead ten times over; wrapping them in one transaction pays it once, for all ten writes together.
%% worse: 10 separate round-trips of coordination overhead [mnesia:transaction(fun() -> mnesia:write(R) end) || R <- Records]. %% better: one transaction, one round-trip of overhead, for all writes mnesia:transaction(fun() -> [mnesia:write(R) || R <- Records] end).
Batching also means the writes are genuinely atomic together — if you actually need all ten to succeed or fail as a unit, separate transactions can't give you that guarantee at all, on top of the performance cost of the repeated coordination overhead.
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...
