Patent classifications
G06F2212/608
Indicating extents of tracks in mirroring queues based on information gathered on tracks in extents in cache
Provided are a computer program product, system, and method for indicating extents of tracks in mirroring queues based on information gathered on tracks in extents in cache. Extent information on an extent of tracks in a cache indicated in an active cache list is processed in response to destaging a track from the active cache list to add to a demote list used to determine tracks to remove from the cache. The extent information is related to a number of modified tracks in an extent destaged from the active cache list. The extent information for the extent is used to determine one of a plurality of mirroring queues to indicate the extent including modified tracks. A mirroring queue having a higher priority than another mirroring queue is processed at a higher rate to determine extents of tracks to mirror from the cache to the secondary storage.
Cache memory including dedicated areas, storage device and method for storing data in the dedicated areas of the cache memory
A storage device having improved operation speed may include a main memory configured to store first to N-th meta data, a cache memory including first to N-th dedicated areas respectively corresponding to areas in which the first to N-th meta data are stored, and a processor configured to store data accessed according to requests provided from a host among the first to N-th meta data in the first to N-th dedicated areas, respectively. A size of the first to N-th dedicated areas may be determined according to the number of times each of the first to N-th meta data is accessed by the requests.
Storage system journal ownership mechanism
A storage system in one embodiment comprises storage nodes, an address space, address mapping sub-journals and write cache data sub-journals. Each address mapping sub-journal corresponds to a slice of the address space, is under control of one of the storage nodes and comprises update information corresponding to updates to an address mapping data structure. Each write cache data sub journal is under control of the one of the storage nodes and comprises data pages to be later destaged to the address space. A given storage node is configured to store write cache metadata in a given address mapping sub journal that is under control of the given storage node. The write cache metadata corresponds to a given data page stored in a given write cache data sub-journal that is also under control of the given storage node.
Methods and systems for distributing memory requests
A memory request, including an address, is accessed. The memory request also specifies a type of an operation (e.g., a read or write) associated with an instance (e.g., a block) of data. A group of caches is selected using a bit or bits in the address. A first hash of the address is performed to select a cache in the group. A second hash of the address is performed to select a set of cache lines in the cache. Unless the operation results in a cache miss, the memory request is processed at the selected cache. When there is a cache miss, a third hash of the address is performed to select a memory controller, and a fourth hash of the address is performed to select a bank group and a bank in memory.
Aggregating commands in a stream based on cache line addresses
An operation combiner receives a series of commands with read addresses, a modification operation, and write addresses. In some cases, the commands have serial dependencies that limit the rate at which they can be processed. The operation combiner compares the addresses for compatibility, transforms the operations to break serial dependencies, and combines multiple source commands into a smaller number of aggregate commands that can be executed much faster than the source commands. Some embodiments of the operation combiner receive a first command including one or more first read addresses and a first write address. The operation combiner compares the first read addresses and the first write address to one or more second read addresses and a second write address of a second command stored in a buffer. The operation combiner selectively combines the first and second commands to form an aggregate command based on the comparison.
MEMORY EFFICIENT APPROACH TO EXTENDING CACHE
A method may use memory efficiently to extend cache. A processor receives a request to write data. The size of the data in the write request is compared to a threshold. When the size of the data exceeds the threshold, the data is stored on a solid state device. Page descriptors for the data on the solid state device are stored in a metadata log, and a reference to a first page descriptor of the page descriptors in the metadata log is stored in a first hash table in memory.
Method of operating storage device, storage device performing the same and storage system including the same
In a method of operating a storage device including a plurality of disks, the plurality of disks is divided into a plurality of journal areas and a plurality of data areas, respectively. When a write command for target disks among the plurality of disks is received, a first write operation is performed to store target data to be written into journal areas of the target disks. The target disks are included in a same array. After the first write operation is completed, a second write operation is performed to store the target data into data areas of the target disks.
System and method for non-volatile memory-based optimized, versioned, log-structured metadata storage with efficient data retrieval
A system and method for efficiently storing and accessing large volumes of metadata persistent on Non-Volatile Memory (NVM) storage systems is provided. The system applies log-structured, Copy-on-Write (CoW) B.sup.+ tree methods, and supports a core-affine data and resource partitioning approaches on the system's architecture and platform with a high-degree of parallelism within the CPU, NVMe storage, and networking devices. The subject system and method efficiently indexes both in-core (DRAM resident) and out-of-core (NVM resident) metadata, supports a variety of data access patterns, supports CoW features and provides verifiable data safety and integrity capabilities. The present system minimizes latencies over all aspects of the metadata management and access path by leveraging core-affine resource partitioning with runtime environment providing lightweight user-level threads with low-latency context switching that execute within the exclusive context of a dedicated CPU core, and partitioned resources.
METHOD FOR MANAGING CACHE, METHOD FOR BALANCING MEMORY TRAFFIC, AND MEMORY CONTROLLING APPARATUS
A memory controlling apparatus is connected between computing nodes and memory modules. A cache module includes a cache shared by the computing nodes, and a coherence module manages coherence of the cache. Monitoring modules correspond to the memory modules, respectively, and monitors memory traffics of the memory modules, respectively. An address translation module translates an address of a request from the coherence module into an address of a corresponding memory module among the plurality of memory modules. When a cache line replacement request occurs, the coherence module selects a cache line replacement policy based on a result of comparing memory traffic in a target monitoring module during a predetermined period with a threshold, and replace a cache line based on the selected cache line replacement policy.
TECHNIQUES ASSOCIATED WITH MAPPING SYSTEM MEMORY PHYSICAL ADDRESSES TO PROXIMITY DOMAINS
Examples include techniques associated with mapping system memory physical addresses to proximity domains. Examples include mapping system memory physical addresses for a memory coupled with a multi-die system to proximity domains that include cores of a multi-core processor and the associated level 3 (L3) cache for use by each core included in a respective proximity domain. The mapping is to facilitate cache line ownership of a cache line in an L3 cache by an input/output device or agent located on a separate die from the multi-core processor.