Preserving the integrity of application data is a paramount duty of computing systems. Failures such as power outages are major perils: A sudden crash during an update may corrupt data or effectively destroy it by corrupting metadata. Applications protect data integrity by using update mechanisms that are atomic with respect to failure. Such mechanisms promise to restore data to an application-defined consistent state following a crash, enabling application recovery.
Unfortunately, the checkered history of failure-atomic update mechanisms precludes blind trust. Widely used relational databases and key-value stores often fail to uphold their transactionality guarantees.24 Lower on the stack, durable storage devices may corrupt or destroy data when power is lost.25 Emerging NVM (non-volatile memory) hardware and corresponding failure-atomic update mechanisms7,8 strive to avoid repeating the mistakes of earlier technologies, as do software abstractions of persistent memory for conventional hardware.10,11 Until any new technology matures, however, healthy skepticism demands first-hand evidence that it delivers on its integrity promises.
No entries found