IP Library Granted Patent US 12,181,981
Granted Patent B1
US 12,181,981 · App. 16/855,348 · Granted Dec 31, 2024

Asynchronously protecting a synchronously replicated dataset

Inventors: Marten Heidemeyer (Burnaby, CA); Vivekkumar Patel (Burnaby, CA); Neale Genereux (Vancouver, CA); David Grunwald (San Francisco, CA); Thomas Gill (Mountain View, CA); Daquan Zuo (Mountain View, CA)
Assignee: PURE STORAGE, INC.
G06F11/1469G06F9/45558G06F16/275G06F2009/45562G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,181,981
App. No.
16/855,348
Granted
Dec 31, 2024
Kind
B1
Abstract

A recovery storage system asynchronously protecting a synchronously replicated dataset, where the asynchronous protection of the synchronously replicated dataset includes: receiving, by a recovery storage system, an identifier of a synchronously replicated dataset, wherein the synchronously replicated dataset is a dataset synchronously replicated across the plurality of storage systems; asynchronously replicating, on the recovery storage system, the synchronously replicated dataset from the plurality of storage systems; detecting that each dataset in the synchronously replicated dataset on the plurality of storage systems has become unavailable; and restoring the dataset on the recovery storage system.

Claims (28)

1. A method, the method comprising:

receiving, by a recovery storage system of a plurality of recovery storage systems, an identifier of a dataset, wherein the recovery storage system is not a member of a plurality of storage systems that synchronously replicate the dataset;

asynchronously replicating, by the recovery storage system, the dataset, from the plurality of storage systems, wherein the recovery storage system asynchronously receives, from different storage systems of the plurality of storage systems, snapshots of the dataset indicating modifying operations of the dataset that the plurality of storage systems is synchronously replicating;

detecting, by the recovery storage system, that the dataset on the plurality of storage systems has become unavailable by detecting that the plurality of storage systems is not servicing requests; and

upon detecting that the plurality of storage systems is not servicing requests, synchronously replicating the dataset among the plurality of recovery storage systems, whereby modifying operations directed to the dataset that are completed through any one recovery storage system during synchronous replication are reflected in subsequent access operations to read the dataset from any other recovery storage system of the plurality of recovery storage systems, including servicing requests for the dataset using the dataset on one or more of the plurality of recovery storage systems.

2. The method of claim 1 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises receiving, by the recovery storage system, snapshots of the synchronously replicated dataset.

3. The method of claim 1 , further comprising:

instantiating a virtual machine using snapshots received from the plurality of storage systems.

4. The method of claim 1 , wherein detecting that each dataset in the synchronously replicated dataset on the plurality of storage systems has become unavailable comprises determining that each storage system in the plurality of storage systems has become unresponsive.

5. The method of claim 1 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises receiving updates to the synchronously replicated dataset from different storage systems in the plurality of storage systems based on performance metrics of each of the plurality of storage systems.

6. The method of claim 1 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises using the identifier of the synchronously replicated dataset to locate the synchronously replicated dataset and begin asynchronous replication.

7. The method of claim 1 , wherein the plurality of storage systems is an active cluster of storage systems synchronously replicating the dataset.

8. The method of claim 1 , wherein a storage system in the plurality of storage systems switches from the plurality of storage systems synchronously replicating the dataset to a recovery storage system asynchronously replicating the dataset.

9. The method of claim 1 , wherein another recovery storage system switches from a recovery storage system asynchronously replicating the dataset to the plurality of storage systems synchronously replicating the dataset.

10. A recovery storage system, the recovery storage system comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory storing computer program instructions that, when executed by the computer processor, cause the recovery storage system to carry out the steps of:

receiving, by a recovery storage system of a plurality of recovery storage systems, an identifier of a dataset, wherein the recovery storage system is not a member of a plurality of storage systems that synchronously replicate the dataset;

asynchronously replicating, by the recovery storage system, the dataset, from the plurality of storage systems, wherein the recovery storage system asynchronously receives, from different storage systems of the plurality of storage systems, snapshots of the dataset indicating modifying operations of the dataset that the plurality of storage systems is synchronously replicating;

detecting, by the recovery storage system, that the dataset on the plurality of storage systems has become unavailable by detecting that the plurality of storage systems is not servicing requests; and

upon detecting that the plurality of storage systems is not servicing requests, synchronously replicating the dataset among the plurality of recovery storage systems, whereby modifying operations directed to the dataset that are completed through any one recovery storage system during synchronous replication are reflected in subsequent access operations to read the dataset from any other recovery storage system of the plurality of recovery storage systems, including servicing requests for the dataset using the dataset on one or more of the plurality of recovery storage systems.

11. The recovery storage system of claim 10 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises receiving, by the recovery storage system, snapshots of the synchronously replicated dataset.

12. The recovery storage system of claim 10 , further comprising:

instantiating a virtual machine using snapshots received from the plurality of storage systems.

13. The recovery storage system of claim 10 , wherein detecting that each dataset in the synchronously replicated dataset on the plurality of storage systems has become unavailable comprises determining that each storage system in the plurality of storage systems has become unresponsive.

14. The recovery storage system of claim 10 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises receiving updates to the synchronously replicated dataset from different storage systems in the plurality of storage systems based on performance metrics of each of the plurality of storage systems.

15. The recovery storage system of claim 10 , wherein asynchronously replicating, on the recovery storage system, the dataset from the plurality of storage systems comprises using the identifier of the synchronously replicated dataset to locate the synchronously replicated dataset and begin asynchronous replication.

16. The recovery storage system of claim 10 , wherein the plurality of storage systems is an active cluster of storage systems synchronously replicating the dataset.

17. The recovery storage system of claim 10 , wherein a storage system in the plurality of storage systems switches from the plurality of storage systems synchronously replicating the dataset to a recovery storage system asynchronously replicating the dataset.

18. The recovery storage system of claim 10 , wherein another recovery storage system switches from a recovery storage system asynchronously replicating the dataset to the plurality of storage systems synchronously replicating the dataset.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2020
From: HEIDEMEYER, MARTEN; PATEL, VIVEKKUMAR; GENEREUX, NEALE; GRUNWALD, DAVID; GILL, THOMAS; ZUO, DAQUAN
To: PURE STORAGE, INC.
Reel/Frame 052466/0777 →
Continuity (3)
Continuation In Part 16050698 · Jul 31, 2018
Provisional Application 62695433 · Jul 9, 2018
Provisional Application 62674570 · May 21, 2018
Cited By (10)
US 12,314,576 US 12,373,315 US 12,406,056 US 12,547,507 US 12,587,945 US 12,608,278 US 12,645,539 US 12,645,697 US 12,683,773 US 12,711,249