IP Library Granted Patent US 11,704,202
Granted Patent B2
US 11,704,202 · App. 17/703,080 · Granted Jul 18, 2023

Recovering from system faults for replicated datasets

Inventors: Joshua Freilich (San Francisco, CA); Aswin Karumbunathan (San Francisco, CA); Naveen Neelakantam (Mountain View, CA); Ronald Karr (Palo Alto, CA)
Assignee: PURE STORAGE, INC.
G06F11/1469G06F11/1451H04L67/1097G06F2201/82
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 11,704,202
App. No.
17/703,080
Granted
Jul 18, 2023
Kind
B2
Abstract

Recovering from system faults for replicated datasets, including: receiving, by the cloud-based storage system, a request to modify a dataset that is stored by the cloud-based storage system, wherein the dataset is synchronously replicated among a plurality of storage systems that includes the cloud-based storage system, wherein a request to modify the dataset is acknowledged as being complete when each of the plurality of storage systems has modified its copy of 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 after 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.

Claims (27)

1. A method comprising:

receiving, by a cloud-based storage system, a request to modify a dataset that is stored by the cloud-based storage system, wherein the dataset is synchronously replicated among a plurality of storage systems that includes the cloud-based storage system;

generating recovery information indicating whether the request to modify the dataset has been applied on all storage systems in the plurality of storage systems, wherein the plurality of storage systems is synchronously replicating the dataset by acknowledging the request as being complete when each storage system of the plurality of storage systems has modified its copy of the dataset; and

after a system fault, applying a recovery action based on 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.

2. The method of claim 1 , wherein the cloud-based storage system includes a plurality of cloud computing instances that respectively store a portion of the dataset.

3. The method of claim 2 , wherein the cloud computing instances provide block-level data storage.

4. The method of claim 1 , wherein the cloud-based storage system includes a cloud-based object storage that stores all portions of the dataset.

5. The method of claim 1 , wherein the plurality of storage systems includes at least one hardware-based storage system.

6. The method of claim 1 , wherein the recovery information includes tracking information from one or more of the plurality of storage systems, and wherein the tracking information indicates progress toward applying the request to modify the dataset on the plurality of storage systems.

7. The method of claim 6 , wherein the tracking information includes logging information on which storage systems of the plurality of storage systems have been sent the request to modify the dataset.

8. The method of claim 6 , wherein the tracking information includes logging information on which storage systems of the plurality of storage systems have acknowledged completing the request to modify the dataset.

9. The method of claim 1 , wherein the recovery information includes confirmation information from one or more other of the plurality of storage systems on whether the request is confirmed to have been processed, and wherein the confirmation information is based on the cloud-based storage system querying the one or more of the other of the plurality of storage systems.

10. The method of claim 1 , wherein the request to modify the dataset is one of a plurality of requests to modify the dataset, and wherein the recovery information comprises an order in which the plurality of requests to modify the dataset are to be applied.

11. A cloud-based storage system including:

one or more storage controller applications, each storage controller application executing in a cloud computing instance, wherein the one or more storage controller applications are configured to:

receive a request to modify a dataset that is stored by the cloud-based storage system, wherein the dataset is synchronously replicated among a plurality of storage systems that includes the cloud-based storage system,

generate recovery information indicating whether the request to modify the dataset has been applied on all storage systems in the plurality of storage systems, wherein the plurality of storage systems is synchronously replicating the dataset by acknowledging the request as being complete when each storage system of the plurality of storage systems has modified its copy of the dataset; and

after a system fault, apply a recovery action based on 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.

12. The cloud-based storage system of claim 11 , wherein a first tier of cloud storage of the cloud-based storage system stores a portion of the dataset, wherein the first tier includes block storage.

13. The cloud-based storage system of claim 12 , wherein a second tier of cloud storage of the cloud-based storage system stores all portions of the dataset, wherein the second tier includes object storage.

14. The cloud-based storage system of claim 11 , wherein the first tier of cloud storage includes a plurality of cloud computing instances with local storage, and each cloud computing instance that executes a storage controller application is communicatively coupled to each of the cloud computing instances with local storage.

15. The cloud-based storage system of claim 11 , wherein the plurality of storage systems includes at least one hardware-based storage system.

16. The cloud-based storage system of claim 11 , wherein the recovery information includes tracking information from one or more of the plurality of storage systems, and wherein the tracking information indicates progress toward applying the request to modify the dataset on the plurality of storage systems.

17. The cloud-based storage system of claim 16 , wherein the tracking information includes logging information on which storage systems of the plurality of storage systems have been sent the request to modify the dataset.

18. The cloud-based storage system of claim 16 , wherein the tracking information includes logging information on which storage systems of the plurality of storage systems have acknowledged completing the request to modify the dataset.

19. The cloud-based storage system of claim 11 , wherein the recovery information includes confirmation information from one or more other of the plurality of storage systems on whether the request is confirmed to have been processed, and wherein the confirmation information is based on the cloud-based storage system querying the one or more of the other of the plurality of storage systems.

20. The cloud-based storage system of claim 11 , wherein the request to modify the dataset is one of a plurality of requests to modify the dataset, and wherein the recovery information comprises an order in which the plurality of requests to modify the dataset are to be applied.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2022
From: FREILICH, JOSHUA; KARUMBUNATHAN, ASWIN; NEELAKANTAM, NAVEEN; KARR, RONALD
To: PURE STORAGE, INC.
Reel/Frame 059388/0263 →
Continuity (9)
Continuation 16524837 · Jul 29, 2019
Continuation In Part 16353775 · Mar 14, 2019
Provisional Application 62878877 · Jul 26, 2019
Provisional Application 62875947 · Jul 18, 2019
Provisional Application 62769277 · Nov 19, 2018
Provisional Application 62768952 · Nov 18, 2018
Provisional Application 62692602 · Jun 29, 2018
Provisional Application 62643641 · Mar 15, 2018
Related Publication 20220229744A1 · Jul 21, 2022
Cited By (1)
US 12,430,213