1. A data recovery method comprising: storing primary data of a database in byte-addressable non-volatile random access memory (NVRAM), the database comprising one or more persistent tables of data in a byte-addressable, random access memory (RAM) format, and a persistent memory allocator that maps persistent memory pointers of the persistent memory to virtual memory pointers of a virtual memory associated with the database, the primary data comprising information; storing secondary data of the database in volatile dynamic random access memory (DRAM), the secondary data comprising data structures for assisting query execution of the primary data of one or more queries received by a database management system associated with the database; and for a failure of one of the one or more queries, executing a recovery of the query execution, the recovery comprising: recovering, by the database management system, the persistent memory allocator; mapping, by the persistent memory allocator, the persistent memory to the virtual memory to recover primary data using their persistent memory pointers; translating, by the persistent memory allocator, the persistent memory pointers to virtual memory pointers; undoing, by the database management system, changes to the primary data made by unfinished transactions of the query execution at the time of failure of one of the one or more queries; and reconstructing, by the database management system, the secondary data from the primary data.