Cyclic Restart
Transactions can cause each other to abort forever.
- T1 starts running. Then T2 starts running.
- They deadlock and T1 (the oldest) is aborted.
- T1 restarts, bumps into T2 and again deadlocks
- T2 (the oldest) is aborted ...
Choosing the youngest in a cycle as victim avoids cyclic restart, since the oldest transaction is never the victim.
Can combine with other heuristics, e.g. fewest-locks