A
system and method enables efficient implementation of snapshots of data organized as arbitrary data structures on a
byte-addressable persistent memory of a host computer. A user-level
library of the host computer may configure the persistent memory as a
software transactional memory (STM)
system defined by operations, such as a STM
commit operation, that ensure safe and consistent storage of the data (i.e., the data structures) within a region of the persistent memory. The
library may then cooperate with an application executing on the host computer to control access to a
data structure, e.g., to change a datum, stored in the region of the persistent memory as a transaction using the STM
commit operation. Within a context of the transaction, the
library may precisely determine which
byte or bytes of the datum have changed within the region, as well as how and when the bytes have changed. Armed with precise knowledge of the context of the transaction, the library may efficiently implement a snapshot (i.e., point-in-time copy) of the changed datum and its associated
data structure at the
granularity at which it was modified, e.g., at the
byte-addressable
granularity.