Persistent data structures
First Claim
Patent Images
1. A method comprising:
- writing data of a persistent data structure from a host to an auto-commit memory, wherein;
the host is a computing device comprising a bus,the auto-commit memory is a hardware device with a single connection to the bus,the persistent data structure is associated with a logical identifier,the auto-commit memory comprises a controller, a non-volatile storage medium, and a plurality of auto-commit memory buffers that receive the data, andthe auto-commit memory buffers are uniformly sized regions of a volatile memory module;
arming the auto-commit memory buffers that received the data of the persistent data structure by storing metadata in the auto-commit memory buffers such that the metadata specifies addresses of the non-volatile storage medium for storing the data of the persistent data structure, and such that individual auto-commit memory buffers store their own per-buffer portions of the metadata specifying where to store their own per-buffer portions of the data;
destaging a portion of the data of the persistent data structure from the auto-commit memory buffers that received the data to addresses specified by the metadata such that the data of the persistent data structure remains associated with the logical identifier; and
in response to a trigger, using the controller to store remaining data of the persistent data structure from the auto-commit memory buffers to the addresses specified by the metadata, wherein storing the data is internal to the hardware device without communicating via the single connection.
6 Assignments
0 Petitions
Accused Products
Abstract
Apparatuses, systems, methods, and computer program products are disclosed for a persistent data structure. A method includes associating a logical identifier with a data structure. A method includes writing data of a data structure to a first region of a volatile memory module. A volatile memory module may be configured to ensure that data is preserved in response to a trigger. A method includes copying data of a data structure from a volatile memory module to a non-volatile storage medium such that the data of the data structure remains associated with a logical identifier.
441 Citations
20 Claims
-
1. A method comprising:
-
writing data of a persistent data structure from a host to an auto-commit memory, wherein; the host is a computing device comprising a bus, the auto-commit memory is a hardware device with a single connection to the bus, the persistent data structure is associated with a logical identifier, the auto-commit memory comprises a controller, a non-volatile storage medium, and a plurality of auto-commit memory buffers that receive the data, and the auto-commit memory buffers are uniformly sized regions of a volatile memory module; arming the auto-commit memory buffers that received the data of the persistent data structure by storing metadata in the auto-commit memory buffers such that the metadata specifies addresses of the non-volatile storage medium for storing the data of the persistent data structure, and such that individual auto-commit memory buffers store their own per-buffer portions of the metadata specifying where to store their own per-buffer portions of the data; destaging a portion of the data of the persistent data structure from the auto-commit memory buffers that received the data to addresses specified by the metadata such that the data of the persistent data structure remains associated with the logical identifier; and in response to a trigger, using the controller to store remaining data of the persistent data structure from the auto-commit memory buffers to the addresses specified by the metadata, wherein storing the data is internal to the hardware device without communicating via the single connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus comprising:
-
a write module configured to append data to a persistent transaction log by writing the data from a host to an auto-commit memory, wherein; the host is a computing device comprising a bus, the auto-commit memory is a hardware device with a single connection to the bus, the auto-commit memory comprises a controller, a non-volatile memory medium, and a plurality of auto-commit memory buffers that receive the data, and the auto-commit memory buffers are uniformly sized regions of a volatile memory module; a storage management module configured to arm the auto-commit memory buffers that received the data of the persistent transaction log by storing metadata in the auto-commit memory buffers such that the metadata specifies addresses of the non-volatile memory medium for storing the data of the persistent transaction log, and such that individual auto-commit memory buffers store their own per-buffer portions of the metadata specifying where to store their own per-buffer portions of the data; an enforcement module configured to enforce one or more rules preventing the data from being overwritten in the persistent transaction log; and a commit module configured to use the controller, in response to a trigger, to store data of the persistent transaction log from the auto-commit memory buffers to the one or more addresses specified by the metadata, wherein storing the data is internal to the hardware device without communicating via the single connection, wherein the write module, the storage management module, the enforcement module, and the commit module comprise one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable medium. - View Dependent Claims (17, 18)
-
-
19. An apparatus comprising:
-
means for satisfying one or more client requests for a persistent data structure, wherein; satisfying the one or more client requests comprises writing data of a persistent data structure from a host to an auto-commit memory, the host is a computing device comprising a bus, the auto-commit memory is a hardware device with a single connection to the bus; the auto-commit memory comprises a controller, a non-volatile memory medium, and a plurality of auto-commit memory buffers that receive the data; the auto-commit memory buffers are uniformly sized regions of a volatile memory module; the auto-commit memory buffers are individually armed by storing metadata in the auto-commit memory buffers such that the metadata specifies addresses of the non-volatile memory medium for storing data of the persistent data structure, and such that individual auto-commit memory buffers store their own per-buffer portions of the metadata specifying where to store their own per-buffer portions of the data; and the persistent data structure comprises data stored in the auto-commit memory buffers and data stored in the non-volatile memory medium; means for using the controller, in response to a trigger, to commit the data of the persistent data structure stored in the auto-commit memory buffers to the addresses specified by the metadata, wherein committing the data is internal to the hardware device without communicating via the single connection; and means for providing access to the persistent data structure from the non-volatile memory medium after a restart event using a logical identifier associated with the persistent data structure. - View Dependent Claims (20)
-
Specification