Patent classifications
G06F2212/261
Changing Storage Volume Ownership Using Cache Memory
A method, a computing device, and a non-transitory machine-readable medium for changing ownership of a storage volume from a first controller to a second controller without flushing data, is provided. In the system, the first controller is associated with a first DRAM cache comprising a primary partition that stores data associated with the first controller and a mirror partition that stores data associated with the second controller. The second controller in the system is associated with a second DRAM cache comprising a primary partition that stores data associated with the second controller and the mirror partition associated with the first controller. Further, the mirror partition in the second DRAM cache stores a copy of a data in the primary partition of the first DRAM cache and the mirror partition in the first DRAM cache stores a copy of a data in the primary partition of the second DRAM cache.
Methods and apparatus for content-based storage addressing with data prioritization
Methods and apparatus to determine priority information from read and/or write access of data blocks with addressing to physical storage based upon unique identifiers derived from content of data blocks. Time information for the respective data blocks can be stored. In embodiments, data blocks can be moved and/or copied based upon the priority information.
Data exchange between a memory mapped interface and a streaming interface
Data exchange between a memory mapped interface and a streaming interface may include receiving sub-packets of a packet from a first interface, storing the sub-packets within a memory at addresses determined according to a ratio of a width of the first interface and a width of a second interface, and determining occupancy, of the memory as the sub-packets are stored. Responsive to determining that the occupancy of the memory meets a trigger level, sub-packets may be read from the memory at addresses determined according to the ratio and sending the sub-packets using the second interface.
Method and apparatus for optimizing the performance of a storage system
Methods and apparatuses for optimizing the performance of a storage system comprise a FLASH storage system, a hard drive storage system, and a storage controller. The storage controller is adapted to receive READ and WRITE requests from an external host, and is coupled to the FLASH storage system and the hard drive storage system. The storage controller receives a WRITE request from an external host containing data and an address, forwards the received WRITE request to the FLASH storage system and associates the address provided in the WRITE request with a selected alternative address, and provides an alternative WRITE request, including the selected alternative address and the data received in the WRITE request, to the hard drive storage system, wherein the alternative address is selected to promote sequential WRITE operations within the hard drive storage system.
HYBRID GARBAGE COLLECTION IN A DISTRIBUTED STORAGE SYSTEM
In various embodiments, methods and systems for implementing garbage collection in distributed storage systems are provided. The distributed storage system operates based on independent management of metadata of extent and stream data storage resources. A hybrid garbage collection system based on reference counting garbage collection operations and mark-and-sweep garbage collection operations is implemented. An extent lifetime table that tracks reference weights and mark sequences for extents is initialized and updated based on indications from extent managers and stream managers, respectively. Upon determining that an extent is to be handed-off from weighted reference counting garbage collection operations to mark-and-sweep garbage collection operations, a reference weight field for the extent is voided and a mark sequence field of the extent is updated. The mark sequence field is updated with a latest global sequence number. The mark-and-sweep garbage collection operations are utilized to reclaim the extent when the extent is no longer referenced.
Using mirror indicators to indicate whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume
Provided are a computer program product, system, and method for using mirror indicators to indicate whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume. A table includes a mirror indicator for each of a plurality of tracks in at least one data set in the primary volume indicating whether a track is to be mirrored to the secondary volume. In response to a write command of write data for one of the tracks in the primary volume, creating a record set in a cache for the primary volume including write data for the track to transfer to the secondary volume in response to the mirror indicator for the track indicating that the track is to be mirrored. The write data in the record set is transferred from the cache to the secondary volume.
ENHANCED DUPLICATE WRITE DATA TRACKING FOR CACHE MEMORY
Data is stored at a cache portion of a cache memory of a memory sub-system responsive to a request to perform a write operation to write the data. A duplicate copy of the data is stored at a write buffer portion of the cache memory. The cache memory is partitioned into the cache portion and the write buffer portion. An entry that maps a location of the duplicate copy of the data stored at the write buffer portion of the cache memory to a location of the data stored at the cache portion of the cache memory is recorded in a write buffer record.
ORDERING READS TO LIMIT COLLISIONS IN A NON-VOLATILE MEMORY (NVM)
Method and apparatus for managing data in a storage device, such as a solid-state drive (SSD). In some embodiments, a data storage device includes a main non-volatile memory (NVM), a host command queue that lists pending host read and host write commands, and a write cache which temporarily stores write data sets pending transfer to the NVM responsive to execution of the associated host write commands in the host command queue. A collision prediction circuit predicts a rate of future collisions involving the cached write data sets. A storage manager directs storage of the write data sets to a first target location responsive to the rate of future collisions being at a first level, and directs storage of the write data sets to a different, second target location responsive to the rate of future collisions being at a different, second level.
DATA STORAGE DEVICE
A memory system includes a plurality of volatile memory modules to temporarily store data in a distributed manner, a V storing place management unit included in each of the volatile memory modules, a plurality of nonvolatile memory modules to store the data stored in each of the volatile memory modules in a distributed manner, and a NV storing place management unit included in each of the nonvolatile memory modules. Each V storing place management unit and each NV storing place management unit communicate and determine the destination nonvolatile memory module for each volatile memory module. The data is transmitted to the determined destination nonvolatile memory module and stored in the destination nonvolatile memory module.
MODULAR DATA OPERATIONS SYSTEM
In various embodiments, methods and systems, for implementing modular data operations, are provided. A data access request, associated with data, is received at a data access component. The data access component selectively implements modular data operations functionality based on configuration settings. A translation table associated with a working set is accessed, based on the configuration settings of the data access component, to determine a location for executing the data access request. The data access request is executed using the cache store or a backing store associated with the working set. The data access request is executed using the location that is determined using the translation table of the working set. The data access request is executed using the cache store when the data is cached in the cache store and the data access requested is executed based on the backing store when the data is un-cached in the cache store.