G06F3/0665

RESTRICTED ADDRESS TRANSLATION TO PROTECT AGAINST DEVICE-TLB VULNERABILITIES

An apparatus includes an extended capability register and an input/output (I/O) memory management circuitry. The I/O memory management circuitry is to receive, from an I/O device, an address translation request referencing a guest virtual address associated with a guest virtual address space of a virtual machine. The I/O memory management circuitry may translate the guest virtual address to a guest physical address associated with a guest physical address space of the virtual machine, and, responsive to determining that a value stored by the extended capability register indicates a restrict-translation-request-response (RTRR) mode, transmit, to the I/O device, a translation response having the guest physical address.

Multi-tier write allocation

Techniques are provided for multi-tier write allocation. A storage system may store data within a multi-tier storage environment comprising a first storage tier (e.g., storage devices maintained by the storage system), a second storage tier (e.g., a remote object store provided by a third party storage provider), and/or other storage tiers. A determination is made that data (e.g., data of a write request received by the storage system) is to be stored within the second storage tier. The data is stored into a staging area of the first storage tier. A second storage tier location identifier, for referencing the data according to a format utilized by the second storage tier, is assigned to the data and provided to a file system hosting the data. The data is then destaged from the staging area into the second storage tier, such as within an object stored within the remote object store.

DIFFERENTIATING OPEN AND ABANDONED TRANSACTIONS IN A SHARED STORAGE ENVIRONMENT
20180011650 · 2018-01-11 ·

Systems and methods for enhancing storage recollection in a shared storage system by enabling the recollection procedure to differentiate between open and abandoned transaction. An example method comprises: detecting, by a processing device, a transaction marker of a storage system, the transaction marker being stored on shared storage and indicating a modification of the shared storage is incomplete; determining, in view of a locking data structure on the shared storage, whether the transaction marker is associated with an abandoned modification; in response to the transaction marker being associated with an abandoned modification, releasing a portion of the shared storage associated with the abandoned modification; and destroying the transaction marker.

PERFORMING GARBAGE COLLECTION ON AN OBJECT ARRAY USING ARRAY CHUNK REFERENCES

Techniques for performing garbage collection on an object array using array chunk references is described. A garbage collector (GC) thread identifies an object array to be processed. The GC thread divides the object array into array chunks. The GC thread generates array chunk references corresponding respectively to the array chunks. Each array chunk reference comprises: (a) chunk start bits representing a memory address of a start of a corresponding array chunk, and (b) chunk length bits representing a chunk length of the corresponding array chunk. The GC thread pushes the array chunk references onto the processing stack. A single processing stack concurrently stores multiple array chunk references, associated with a same object array. One or more of the array chunk references, that are associated with the same object array and stored on the processing stack, may be distributed to other GC threads for processing.

Managing Correlated Outages in a Dispersed Storage Network

A storage network processing system includes a processor, a network interface and memory that stores operational instructions. The operation instructions enable the processor to receive a data object for storage and dispersed error encode the data object in accordance with dispersed error encoding parameters to produce a plurality of encoded data slices. The operation instructions further enable the processor to generate to determine a plurality of site slice sets from the plurality of encoded data slices, where each site slice set of the plurality of site slice sets includes a number of unique encoded data slices of the plurality of encoded data slices that is greater than or equal to a site write threshold value. The operation instructions further enable the processor to a designate one of a plurality of storage sites for each of the plurality of site slice sets and transmit each of the plurality of site slice sets to a corresponding designated one of the plurality of storage sites via the network.

SYNCHRONIZING CONFIGURATION OF PARTNER OBJECTS ACROSS DISTRIBUTED STORAGE SYSTEMS USING TRANSFORMATIONS
20230004531 · 2023-01-05 ·

A configuration for a component of a primary node is synchronized with a configuration for a component of a partner node in a different cluster by replicating the primary node configuration with the partner node. A baseline configuration replication comprises a snapshot of a component configuration on the primary. The baseline configuration can be generated by traversing through the configuration objects, capturing their attributes and encapsulating them in a package. The baseline package can then be transferred to the partner node. The configuration objects can be applied on the partner node in the order in which they were captured on the primary node. Attributes of the configuration objects are identified that are to be transformed. Values for the identified attributes are transformed from a name space in the primary node to a name space in the partner node.

QUALITY OF SERVICE FOR THE MULTIPLE FUNCTIONS IN MEMORY DEVICES
20230236734 · 2023-07-27 ·

A processing device, operatively coupled with the memory device, is configured to provide a plurality of functions for accessing the memory device, wherein a function of the plurality of function receives input/output (I/O) operations from a host computing system. The processing device further determines a quality of service level of each function of the plurality of functions, and assigns to each function of the plurality of functions a corresponding function weight based on a corresponding quality of service level. The processing device also selects, for execution, a subset of the I/O operations, the subset comprising a number of I/O operations received at each function of the plurality of functions, wherein the number of I/O operations is determined according to the corresponding function weight of each function. The processing logic then executes the subset of I/O operations at the memory device.

Systems and Methods for Scaling Volumes Using Volumes Having Different Modes of Operation

A method, a computing device, and a non-transitory machine-readable medium for managing modes of operation for volumes in a node. A first portion of a plurality of volumes in a node is selected to operate in an active mode. A second portion of the plurality of volumes in the node is selected to operate in a passive mode. The second portion of the volumes that operates in the passive mode consumes fewer resources than the first portion of the volumes that operates in the active mode. The first portion of the plurality of volumes and the second portion of the plurality of volumes are adjusted over time based on activity of each volume of the plurality of volumes.

Node regeneration in distributed storage systems

Systems, devices, and methods are disclosed herein for containerized scalable storage applications. Methods may include instantiating an application instance based on a plurality of application instance parameters, the application instance being configured to utilize a plurality of storage volumes implemented in a storage cluster. Methods may also include enumerating a plurality of unattached storage volumes included in the cluster associated with the application instance, the plurality of unattached storage volumes having a plurality of underlying physical storage devices, and the plurality of unattached storage volumes being identified based on a plurality of application instance parameters. The methods may further include attaching at least some of the plurality of unattached storage volumes to the application instance, wherein the attaching enables the application instance to access data stored in the attached storage volumes.

Balancing Data Transfer Amongst Paths Between A Host and A Storage System
20230236767 · 2023-07-27 ·

Managing input/output (‘I/O’) queues in a data storage system, including: receiving, by a host that is coupled to a plurality of storage devices via a storage network, a plurality of I/O operations to be serviced by a target storage device; determining, for each of a plurality of paths between the host and the target storage device, a data transfer maximum associated with the path; determining, for one or more of the plurality of paths, a cumulative amount of data to be transferred by I/O operations pending on the path; and selecting a target path for transmitting one or more of the plurality of I/O operations to the target storage device in dependence upon the cumulative amount of data to be transferred by I/O operations pending on the path and the data transfer maximum associated with the path.