Fundamental principle
TOF, a nondeterminism culprit, introduces new define-use relations between W and R beyond traditional concurrency.
TOF bug categorization
Conflicting | RRegular | RRecovery |
WCrash | Crash-regular TOF bug | Crash-recovery TOF bug |
- WCrash: W from1 the crash node
- RRegular: R from1 a non-crash node
- RRecovery: R from1 the recovery node
Crash-regular TOF bugs
- How can TOF determine the content consumed by RRegular?
- RRegular happens-before WCrash?
- WCrash happens-before RRegular?
- WCrash concurrent with RRegular?
- Fault-tolerant mechanism: timeout
Crash-recovery TOF bugs
- The content consumed by RRecovery is completely determined by TOF.
- Fault-tolerance mechanisms: sanity check and data overwrite