1. A method to store data in a memory module, wherein the memory module includes a volatile portion and a non-volatile portion, the method comprising, by a processor: receiving a request to store the data in the memory module, wherein the request includes a virtual address associated with the data; determining a persistency of the data to be stored in the memory module based on the virtual address in the request, wherein determining the persistency includes identifying, with use of a page table in the memory module, whether the virtual address in the request is mapped to the volatile portion of the memory module or the non-volatile portion of the memory module, and wherein the page table includes a persistency attribute that indicates the persistency of the data; identifying a particular portion of the memory module based on the virtual address; generating a command to store the data in the particular portion of the memory module, wherein the particular portion corresponds to the determined persistency, and wherein generating the command includes generating a command to store the data in a first page frame in the memory module; mapping the virtual address to the first page frame; receiving another request to modify the persistency of the data; and controlling an operating system to perform operations of: allocating a second page frame in the volatile portion of the memory module, wherein prior to allocating the second page frame, the method includes locking at least a portion, of the page table, which corresponds to the virtual address; copying the data from the first page frame to the second page frame; modifying the persistency attribute of the data in the page table, wherein prior to modifying the persistency attribute, the method includes mapping the virtual address, which corresponds to the locked portion of the page table, to the second page frame; and subsequent to modifying the persistency attribute, unlocking the locked portion of the page table that corresponds to the virtual address.