4 ms·
The efficiency challenge with serializable transactions comes mostly in the context of distributed transactions. Netezza/IBM had a reasonably efficient impleme
by quizotic 10y ago
The efficiency challenge with serializable transactions comes mostly in the context of distributed transactions.
Netezza/IBM had a reasonably efficient implementation. Instead of broadcasting individual locks, they shared ordering relations between transactions as they were discovered.
Essentially, when transaction A reads a record and concurrent transaction B modifies the record, then B serializes after A (even if B's modification occurs before A's read in real time). These ordering relationships form a a graph. If a new ordering relationship between transactions causes the formation of a cycle, then some transaction must be aborted.