G06F12/0684

REPLICATION USING SHARED CONTENT MAPPINGS
20230333947 · 2023-10-19 ·

Synchronizing metadata among storage systems synchronously replicating a dataset, where synchronizing the metadata includes: receiving, at a first storage system of the storage systems, an I/O operation directed to the dataset; determining, in dependence upon the I/O operation, a metadata update describing a mapping of segments of content to a virtual address within a storage object, wherein the storage object includes the dataset; and synchronizing metadata on a second storage system of the storage systems by sending the metadata update to the second storage system to update a metadata representation on the second storage system in accordance with the metadata update.

Maintaining a synchronous replication relationship between two or more storage systems

Maintaining a synchronous replication relationship between two or more storage systems, including: receiving, by at least one of a plurality of storage systems across which a dataset will be synchronously replicated, timing information for at least one of the plurality of storage systems; and establishing, based on the timing information, a synchronous replication lease describing a period of time during which the synchronous replication relationship is valid, wherein a request to modify the dataset may only be acknowledged after a copy of the dataset has been modified on each of the storage systems.

Using host connectivity states to avoid queuing I/O requests
11803453 · 2023-10-31 · ·

Using host connectivity states to avoid queuing I/O requests: identifying a fault in data communications between a first storage system and a second storage system among a plurality of storage systems across which a dataset is synchronously replicated; updating, upon identifying the fault, an access state of a data communications path between first storage system and a host from an active state to a transitional state with respect to the dataset; and indicating, to the host, a first access state change.

Performance-Based Prioritization For Storage Systems Replicating A Dataset

Prioritizing highly performant storage systems for servicing a synchronously replicated dataset: detecting a communication fault between two or more storage systems that are synchronously replicating a dataset; identifying a preferred storage system for winning mediation, including determining that the preferred storage system winning mediation would result in better performance than other storage systems winning mediation; and requesting, by the preferred storage system, mediation from a mediation target.

Prioritizing highly performant storage systems for servicing a synchronously replicated dataset

Prioritizing highly performant storage systems for servicing a synchronously replicated dataset: detecting a communication fault between two or more storage systems that are synchronously replicating a dataset; identifying a preferred storage system for winning mediation, including determining that the preferred storage system winning mediation would result in better performance than other storage systems winning mediation; and requesting, by the preferred storage system, mediation from a mediation target.

Prioritizing Highly Performant Storage Systems For Servicing A Synchronously Replicated Dataset

Prioritizing highly performant storage systems for servicing a synchronously replicated dataset: detecting a communication fault between two or more storage systems that are synchronously replicating a dataset; identifying a preferred storage system for winning mediation, including determining that the preferred storage system winning mediation would result in better performance than other storage systems winning mediation; and requesting, by the preferred storage system, mediation from a mediation target.

Managing Storage Systems That Are Synchronously Replicating A Dataset

Managing storage systems that are synchronously replicating a dataset, including: detecting a change in membership to the set of storage systems synchronously replicating the dataset; and applying one or more membership protocols to determine a new set of storage systems to synchronously replicate the dataset, wherein the one or more membership protocols include a quorum protocol, an external management protocol, or a racing protocol, and wherein one or more I/O operations directed to the dataset are applied to a new set of storage systems.

Recovery for storage systems synchronously replicating a dataset

Recovery for storage systems synchronously replicating a dataset, including: receiving, by at least one storage system among the plurality of storage systems synchronously replicating the dataset, a request to modify the dataset; generating recovery information indicating whether the request to modify the dataset has been applied on all storage systems in the plurality of storage systems synchronously replicating the dataset; and responsive to a system fault, applying a recovery action in dependence upon the recovery information indicating whether the request to modify the dataset has been applied on all storage systems in the plurality of storage systems synchronously replicating the dataset.

Mediation for synchronous replication

Determining active membership among storage systems synchronously replicating a dataset, where determining active membership includes: detecting, by a particular storage system of the storage systems, a communication fault with one or more of the storage systems, where the particular storage system is configured to request mediation from a mediation target; determining that at least one of the one or more storage systems is configured to request mediation from the mediation target responsive to the communication fault; and responsive to determining that one or more of the storage systems is configured to request mediation from the mediation target, determining whether to request mediation from the mediation target.

Detection Of Scattered Data Locations
20220229593 · 2022-07-21 ·

The present disclosure generally relates to data storage devices, such as solid state drives (SSDs), specifically utilizing the data storage device memory in the execution of host commands. A controller is configured to receive a command pointer or a data chunk from a host device, mark a destination used for the command pointer or the data chunk, determine whether a last chunk of the command pointer or the data chunk has been received, and determine whether the command pointer or the data chunk uses an illegal combination of locations after determining that the last chunk of the command pointer has been received. The controller is further configured to return an error message to the host device upon determining that the command pointer or the data chunk uses an illegal combination of locations.