MOD borrows the idea of functional programming to make atomic one or more updates. It’s C++ prototype performs better than software transaction memory (STM).
There are two ways to achieve crash consistency:
- Undo/Redo Log
- Shadow page SSP Micro 2019
The later scheme matches very well with functional programming. In functional programming, all data is immutable after initialization. Updates to the data will redirect to a new copy of the data.
This enables MOD to overlap multiple flush operations and only append one fence at the end of the updates.