G06F3/0683

Input / output load balancing in a data storage system

The described technology is generally directed towards an input/output (I/O) load balancer of a data storage system that detects an I/O overloaded (“hot”) storage unit and logically moves its hot data to a non-overloaded (“cold”) storage unit. Threshold load levels can be used to determine hot and cold storage units. In one implementation, new writes to the hot storage unit are prevented while its hot data is logically moved to a cold storage unit. To avoid reads from the hot storage unit, the hot data can be recreated from redundant data obtained via a recovery path. To avoid a capacity imbalance, once enough hot data has been moved so that the (formerly) hot storage device is no longer considered hot, cold data from the cold storage device can be written to the formerly hot storage device. New data writes to the formerly hot storage device can then resume.

Memory Controller with Programmable Atomic Operations
20230041362 · 2023-02-09 ·

A memory controller circuit is disclosed which is coupleable to a first memory circuit, such as DRAM, and includes: a first memory control circuit to read from or write to the first memory circuit; a second memory circuit, such as SRAM; a second memory control circuit adapted to read from the second memory circuit in response to a read request when the requested data is stored in the second memory circuit, and otherwise to transfer the read request to the first memory control circuit; predetermined atomic operations circuitry; and programmable atomic operations circuitry adapted to perform at least one programmable atomic operation. The second memory control circuit also transfers a received programmable atomic operation request to the programmable atomic operations circuitry and sets a hazard bit for a cache line of the second memory circuit.

Unified host-based data migration
11556265 · 2023-01-17 · ·

Methods, apparatus, and processor-readable storage media for unified host-based data migration are provided herein. An example computer-implemented method includes identifying a first storage array and a second storage array associated with a host device; determining a set of characteristics related to the host device for migrating data from the first storage array to the second storage array; and migrating the data based at least in part on the set of characteristics, wherein the migrating comprises: creating a set of target devices on the second storage array and provisioning the set of target devices to the host device; and moving the data from a set of source devices on the first storage array to the target devices on the second storage array.

Method and system of deduplication of error codec in hyperscale infrastructure
11556419 · 2023-01-17 · ·

The present disclosure provides methods, systems, and non-transitory computer readable media for performing data transfers with improved error encoding. The methods include receiving a request for data transfer from a source medium in the data storage system to a destination medium in the data storage system, wherein the data storage system comprises a computer cluster and a storage cluster; determining whether the source medium and the destination medium are within the storage cluster; based on the determination of whether the source medium and the destination medium are within the storage cluster, transferring the data from the source medium to the destination medium, wherein: the data is transferred without performing error correcting code check when the data is transferred within the storage cluster, and the data is transferred with an error correcting code check when the data is transferred between the computer cluster and the storage cluster.

STORAGE SYSTEM, DATA WRITE CONTROL METHOD, AND NON-TRANSITORY COMPUTER READABLE MEDIUM FOR STORING DATA WRITE CONTROL PROGRAM

Each storage controller comprises a first storage unit, an interface unit, and a processing unit which sends, to the interface unit, a parameter which instructs n-fold write of writing data in each of n-number of (n is a natural number of 2 or more) other storage controllers. When the interface unit receives the parameter, the interface unit executes each processing of acquiring the data from the first storage unit and storing the data in the second storage unit, generating n-number of requests of writing the data in each of n-number of the other storage controllers, storing each of the generated requests in n-number of the queues corresponding to each of n-number of the other storage controllers, and processing each request stored in each queue and transferring the data stored in the second storage unit to each of n-number of the other storage controllers.

Metadata management in storage systems
11550479 · 2023-01-10 · ·

Techniques are disclosed for managing metadata of a storage system. A storage control system receives data to be written to primary storage, and writes the received data together with metadata to a write cache. The storage control system destages the metadata from the write cache to a primary metadata structure which is configured to persistently store and index the metadata. The primary metadata structure comprises (i) a first data structure that is configured to accumulate the metadata destaged from the write cache and organize the accumulated metadata in blocks of metadata sorted by index keys, and (ii) a second data structure that is configured to receive the accumulated metadata from the first data structure, and organize the received metadata using an index structure that enables random-access to the metadata using the index keys.

Virtualized file server

In one embodiment, a system for managing communication connections in a virtualization environment includes a plurality of host machines implementing a virtualization environment, wherein each of the host machines includes a hypervisor, at least one user virtual machine (user VM), and a distributed file server that includes file server virtual machines (FSVMs) and associated local storage devices. Each FSVM and associated local storage device are local to a corresponding one of the host machines, and the FSVMs conduct I/O transactions with their associated local storage devices based on I/O requests received from the user VMs. Each of the user VMs on each host machine sends each of its respective I/O requests to an FSVM that is selected by one or more of the FSVMs for each I/O request based on a lookup table that maps a storage item referenced by the I/O request to the selected one of the FSVMs.

Data processing engine arrangement in a device

A device may include a plurality of data processing engines. Each of the data processing engines may include a memory pool having a plurality of memory banks, a plurality of cores each coupled to the memory pool and configured to access the plurality of memory banks, a memory mapped switch coupled to the memory pool and a memory mapped switch of at least one neighboring data processing engine, and a stream switch coupled to each of the plurality of cores and to a stream switch of the at least one neighboring data processing engine.

Partial pass-through data transfer system

Methods and systems for performing a partial pass-through transfer are described. In an aspect, a method includes: receiving, from a first computing system, pass-through transfer definition data to be associated with a first logical storage area, the pass-through transfer definition data including a trigger condition for a pass-through transfer and an apportionment value for the pass-through transfer; storing a representation of the pass-through transfer definition data in association with the first logical storage area; detecting a first data transfer to the first logical storage area, the first data transfer representing a transfer of a resource; determining that the first data transfer satisfies the trigger condition; and in response to determining that the first data transfer satisfies the trigger condition: identifying a portion of the resource based on the apportionment value; and initiating a second data transfer.

Memory management based on read-miss events

Aspects of the present disclosure relate to asynchronous memory management. In embodiments, an input/output (IO) workload is received at a storage array. Further, one or more read-miss events corresponding to the IO workload are identified. Additionally, at least one of the storage array's cache slots is bound to a track identifier (TID) corresponding to the read-miss events based on one or more of the read-miss events' two-dimensional metrics.