Shared memory snapshots
A system can include a memory device and a processing device operatively coupled with the memory device, to perform operations including recording, in a change log associated with a snapshot of a data object, an entry reflecting a change made by a first host application to the data object, wherein the entry contains information reflecting a current state of a part of the data object; receiving a request to read the part of the data object; determining whether the request is received from the first host application; and responsive to determining that the request is received from the first host application, retrieving the part from the entry of the change log.
1 . A system comprising:
a memory device comprising byte-addressable memory; and
a processing device operatively coupled with the memory device, to perform operations comprising:
recording, in a change log associated with a snapshot of a data object, an entry reflecting a change made by a first host application to the data object, wherein the entry contains information reflecting a current state of a part of the data object;
receiving a request to read the part of the data object;
determining whether the request is received from the first host application;
responsive to determining that the request is received from the first host application, retrieving the part from the entry of the change log; and
responsive to determining that the request is received from a second host application, retrieving the part from one or more physical address ranges identifying respective locations storing the data object on the memory device, wherein the one or more physical address ranges is associated with a previous state of the part of the data object.
2 . The system of claim 1 , wherein the operations further comprise:
associating, in a first metadata item, an object identifier with the one or more physical address ranges identifying respective locations storing the data object on the memory device.
3 . The system of claim 2 , wherein the operations further comprise:
mapping the one or more physical address ranges to corresponding virtual address ranges in a virtual address space of the second host application, wherein the one or more physical address ranges are not contiguous, and wherein the first host application is running on a first host system and the second host application is running on a second host system.
4 . The system of claim 1 , wherein the operations further comprise:
associating, in a second metadata item, an object identifier with a snapshot identifier to define the snapshot of the data object on the memory device.
5 . The system of claim 4 , wherein the operations further comprise:
applying, to the data object, the change reflected by the entry recorded in the change log; and
associating, by the second metadata item, the object identifier with a second snapshot identifier to define a subsequent snapshot of the data object on the memory device.
6 . The system of claim 5 , wherein the operations further comprise:
modifying, in a first metadata item, one or more physical address ranges associated with the object identifier to generate one more modified physical address ranges; and
mapping the modified physical address ranges identifying respective locations containing data of the subsequent snapshot of the data object to corresponding virtual address ranges of a second host application.
7 . The system of claim 1 , wherein the memory device is a fabric-attached memory device.
8 . A system comprising:
a memory device comprising byte-addressable memory; and
a processing device operatively coupled with the memory device, to perform operations comprising:
recording, in a change log associated with a snapshot of a data object, an entry reflecting a change made by a first host application to the data object, wherein the entry contains information reflecting a previous state of a part of the data object;
receiving a request to read the part of the data object;
determining whether the request is received from the first host application;
responsive to determining that the request is received from a second host application, retrieving the part from the entry of the change log; and
responsive to determining that the request is received from the first host application, retrieving the part from one or more physical address ranges identifying respective locations storing the data object on the memory device, wherein the one or more physical address ranges is associated with a current state of the part of the data object.
9 . The system of claim 8 , wherein the operations further comprise:
associating, in a first metadata item, an object identifier with the one or more physical address ranges identifying respective locations storing the data object on the memory device.
10 . The system of claim 9 , wherein the operations further comprise:
mapping the one or more physical address ranges to corresponding virtual address ranges in a virtual address space of the first host application, wherein the one or more physical address ranges are not contiguous, and wherein the first host application is running on a first host system and the second host application is running on a second host system.
11 . The system of claim 8 , wherein the operations further comprise:
associating, in a second metadata item, an object identifier with a snapshot identifier to define the snapshot of the data object on the memory device.
12 . The system of claim 11 , wherein the operations further comprise:
applying, to the data object, the change reflected by the entry recorded in the change log; and
associating, by the second metadata item, the object identifier with a second snapshot identifier to define a subsequent snapshot of the data object on the memory device.
13 . The system of claim 12 , wherein the operations further comprise:
modifying, in a first metadata item, one or more physical address ranges associated with the object identifier to generate one more modified physical address ranges; and
mapping the modified physical address ranges identifying respective locations containing data of the subsequent snapshot of the data object to corresponding virtual address ranges of the first host application.
14 . The system of claim 8 , wherein the memory device is a fabric-attached memory device.
15 . A method comprising:
recording, by a processing device, in a change log associated with a snapshot of a data object, an entry reflecting a change made by a first host application to the data object, wherein the entry contains information reflecting a current state of a part of the data object;
receiving a request to read the part of the data object;
determining whether the request is received from the first host application; and
responsive to determining that the request is received from the first host application, retrieving the part from the entry of the change log; and
responsive to determining that the request is received from a second host application, retrieving the part from one or more physical address ranges identifying respective locations storing the data object on a memory device, wherein the one or more physical address ranges is associated with a previous state of the part of the data object.
16 . The method of claim 15 , further comprising:
associating, in a first metadata item, an object identifier with the one or more physical address ranges identifying respective locations storing the data object on the memory device; and
mapping the one or more physical address ranges to corresponding virtual address ranges in a virtual address space of the second host application, wherein the one or more physical address ranges are not contiguous, and wherein the first host application is running on a first host system and the second host application is running on a second host system.
17 . The method of claim 15 , further comprising:
associating, in a second metadata item, an object identifier with a snapshot identifier to define the snapshot of the data object on the memory device;
applying, to the data object, the change reflected by the entry recorded in the change log; and
associating, by the second metadata item, the object identifier with a second snapshot identifier to define a subsequent snapshot of the data object on the memory device.