Database / Mnesia intermediate to advanced Interview questions
What is a sticky lock in Mnesia and why does it improve performance?
Acquiring a write lock on a replicated table normally requires coordinating with every node holding a copy, even if, in practice, all the writes to a particular record consistently originate from the same node. A sticky lock lets a node "claim" ownership of a table's locking for itself after its first access, so subsequent lock requests from that same node can be granted locally without a fresh network round-trip to every other replica each time.
sequenceDiagram
participant NodeA
participant NodeB
NodeA->>NodeB: First write: acquire lock (full coordination)
NodeB-->>NodeA: Lock granted, marked sticky to NodeA
NodeA->>NodeA: Subsequent writes: lock granted locally, no round-trip
This is a significant win specifically for workloads where one node is the dominant writer for a given table over a stretch of time — it turns a network round-trip per lock acquisition into a purely local operation. Mnesia manages sticky locks automatically as an internal optimization; there's no special API call needed to opt in.
More Related questions...