Transaction Repair: Full Serializability Without Locks
Transaction Repair is a method for lock-free, scalable transaction processing that achieves full serializability. It demonstrates parallel speedup even in inimical scenarios where all pairs of transactions have significant read-write conflicts. In the transaction repair approach, each transaction runs in complete isolation in a branch of the database; when conflicts occur, we detect and repair them. These repairs are performed efficiently in parallel, and the net effect is that of serial processing. Within transactions, we use no locks. This frees users from the complications and performance hazards of locks, and from the anomalies of sub-SERIALIZABLE isolation levels. Our approach builds on an incrementalized variant of leapfrog triejoin, a worst-case optimal algorithm for $\exists_1$ formulae, and on well-established techniques from programming languages: declarative languages, purely functional data structures, incremental computation, and fixpoint equations.