Patent classifications
G06F2212/466
NON-VOLATILE MEMORY WITH OPTIMIZED READ
A non-volatile storage system that is implementing a storage region (e.g., a persistent memory region) which is accessible to a host (e.g., via a PCIe connection) and a cache for the storage region shares details of the structure of the storage region and/or the cache (e.g., cache segment size). With awareness of the shared details of the structure of the storage region and/or the cache, the host arranges and sends out requests to read data from the persistent memory region in a manner that takes advantage of parallelism within the non-volatile storage system. For example, the host may initially send out one read request per cache segment to cause the non-volatile storage system to load the cache. Subsequently, additional read requests are made to the non-volatile storage system, with the data already loaded (or starting to load) in the cache, thereby increasing performance.
MEMORY SYSTEM
A memory system includes a first volatile memory having an access unit of a first bit width; a second volatile memory having an access unit of the first bit width and having a capacity larger than the first volatile memory; and a controller connected to the first and second volatile memories. The controller allocates a first address space having the first bit width as a unit to the first volatile memory, allocates a second address space having the first bit width as a unit to the second volatile memory, selects at least one of the first and second volatile memories based on a first address indicating a position in a third address space having a second bit width as a unit, calculates a second address in the address space allocated to the selected volatile memory, and accesses a position corresponding to the second address of the selected volatile memory.
MEMORY INSTRUCTION FOR MEMORY TIERS
Various embodiments provide for one or more processor instructions and memory instructions that enable a memory sub-system to copy, move, or swap data across (e.g., between) different memory tiers of the memory sub-system, where each of the memory tiers is associated with different memory locations (e.g., different physical memory locations) on one or more memory devices of the memory sub-system.
ARCHITECTURE UTILIZING A MIDDLE MAP BETWEEN LOGICAL TO PHYSICAL ADDRESS MAPPING TO SUPPORT METADATA UPDATES FOR DYNAMIC BLOCK RELOCATION
A method for block addressing is provided. The method includes moving content of a data block referenced by a logical block address (LBA) from a first physical block corresponding to a first physical block address (PBA) to a second physical block corresponding to a second PBA, wherein prior to the moving a logical map maps the LBA to a middle block address (MBA) and a middle map maps the MBA to the first PBA and in response to the moving, updating the middle map to map the MBA to the second PBA instead of the first PBA.
System and Method for Lockless Destaging of Metadata Pages
A method, computer program product, and computing system for receiving a flush request for a metadata page stored in a storage array of a multi-node storage system. The flush request may be queued on a flush request lock queue on at least one node of the multi-node storage system. One or more flush requests may be processed, via multiple nodes of the multi-node storage system, on the metadata page based upon, at least in part, the flush request lock queue.
System and Method for Lockless Reading of Metadata Pages
A method, computer program product, and computing system for assigning a plurality of unique sequential identifiers to a plurality of tablets in a cache memory system. One or more metadata deltas associated with a metadata page stored in a storage array may be written to the plurality of tablets in the cache memory system. Each metadata delta stored in at least one tablet of the plurality of tablets may be written to the metadata page stored in the storage array, thus defining one or more destage tablets. A largest unique sequential identifier from the plurality of unique sequential identifiers assigned to the one or more destage tablets, may be written to the storage array, thus defining a current tablet identifier for the metadata page.
Utilizing checkpoints for resiliency of metadata in storage systems
Techniques are disclosed for utilizing checkpoints to achieve resiliency of metadata in a storage system. A storage control system writes metadata to a persistent write cache. The storage control system performs a checkpoint generation process to generate a new metadata checkpoint which includes at least a portion of the metadata in the persistent write cache. The checkpoint generation process comprises placing a lock on processing to enable metadata in the persistent write cache to reach a consistent state, creating a metadata checkpoint structure in memory, removing the lock on processing to allow metadata updates in the persistent write cache, destaging at least a portion of the metadata from the persistent write cache to the metadata checkpoint structure, and persistently storing the metadata checkpoint structure.
Apparatus and method for performing operations on capability metadata
An apparatus is provided comprising storage elements to store data blocks, where each data block has capability metadata associated therewith identifying whether the data block specifies a capability, at least one capability type being a bounded pointer. Processing circuitry is then arranged to be responsive to a bulk capability metadata operation identifying a plurality of the storage elements, to perform an operation on the capability metadata associated with each data block stored in the plurality of storage elements. Via a single specified operation, this hence enables query and/or modification operations to be performed on multiple items of capability metadata, hence providing more efficient access to such capability metadata.
Networked storage system with a remote storage location cache and associated methods thereof
Methods and systems for a networked storage system are provided. One method includes: utilizing, by a first node, a storage location cache to determine if an entry associated with a first read request for data stored using a logical object owned by a second node configured as a failover partner node of the first node exists; transmitting, by the first node, the first read request to the second node; receiving, by the first node, a response to the first read request from the second node with requested data; inserting, by the first node, an entry in the storage location cache indicating the storage location information for the data; and utilizing, by the first node, the inserted entry in the storage location cache to determine storage location of data requested by a second read request received by the first node.
Device and method for data compression using a metadata cache
A processing device is provided which includes memory comprising data cache memory configured to store compressed data and metadata cache memory configured to store metadata, each portion of metadata comprising an encoding used to compress a portion of data. The processing device also includes at least one processor configured to compress portions of data and select, based on one or more utility level metrics, portions of metadata to be stored in the metadata cache memory. The at least one processor is also configured to store, in the metadata cache memory, the portions of metadata selected to be stored in the metadata cache memory, store, in the data cache memory, each portion of compressed data having a selected portion of corresponding metadata stored in the metadata cache memory. Each portion of compressed data, having the selected portion of corresponding metadata stored in the metadata cache memory, is decompressed.