  Byte-addressable persistent memory, such as Intel/Micron 3D XPoint, is an
emerging technology that bridges the gap between volatile memory and persistent
storage. Data in persistent memory survives crashes and restarts; however, it
is challenging to ensure that this data is consistent after failures. Existing
approaches incur significant performance costs to ensure crash consistency.
This paper introduces Crafty, a new approach for ensuring consistency and
atomicity on persistent memory operations using commodity hardware with
existing hardware transactional memory (HTM) capabilities, while incurring low
overhead. Crafty employs a novel technique called nondestructive undo logging
that leverages commodity HTM to control persist ordering. Our evaluation shows
that Crafty outperforms state-of-the-art prior work under low contention, and
performs competitively under high contention.
