IP Library Patent Application 15842844
Patent Application
App. No. 15/842,844

MULTI-SITE DUPLICATION VIA HIGH-LEVEL STORAGE UNIT PROCESSING MODULES

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 None
App. No.
15/842,844
Abstract

A method includes dispersed storage error encoding a data segment into a set of encoded data slices (EDSs), identifying a set of storage units (SUs) to store the set of EDSs, and identifying a number of sites where the set of SUs are located. The method further includes determining high level SU processing modules to engage at each site. The method further includes generating write requests regarding writing the set of EDSs to the set of SUs. The method further includes sending a first write request regarding a first subset of EDSs to the first high level SU processing module to facilitate storing the first subset of EDSs in a first subset of SUs and sending the second write request regarding the second subset of EDSs to the second high level SU processing module to facilitate storing the second subset of EDSs in a second subset of SUs.

Claims (51)

1 . A method comprises:

dispersed storage error encoding, by a computing device of a dispersed storage network (DSN), a data segment of a data object into a set of encoded data slices;

identifying, by the computing device, a set of storage units for storing the set of encoded data slices;

identifying, by the computing device, a number of sites in which the set of storage units is located;

determining, by the computing device, a number of high level storage unit processing modules to engage at each site of the number of sites, wherein a first high level storage unit processing module processes data access requests for a first subset of encoded data slices of the set of encoded data slices, wherein a second high level storage unit processing module processes data access requests for a second subset of encoded data slices of the set of encoded data slices, and wherein at least two sites of the number of sites include the first and second high level storage unit processing modules;

generating, by the computing device, write requests regarding writing the set of encoded data slices to the set of storage units, wherein a first write request of the write requests is regarding the first subset of encoded data slices, and wherein a second write request of the write requests is regarding the second subset of encoded data slices;

sending, by the computing device, the first write request to the first high level storage unit processing module, wherein the first high level storage unit processing module facilitates storing the first subset of encoded data slices in a first subset of storage units of the set of storage units in each of the at least two sites; and

sending, by the computing device, the second write request to the second high level storage unit processing module, wherein the second high level storage unit processing module facilitates storing the second subset of encoded data slices in a second subset of storage units of the set of storage units in each of the at least two sites.

2 . The method of claim 1 , wherein the determining the number of high level storage unit processing modules to engage is based on:

determining, by the computing device, a total number of sites of the DSN;

determining, by the computing device, a number of storage units in each site of the total number of sites; and

determining, by the computing device, a desired level of reliability for the DSN.

3 . The method of claim 2 , wherein the determining the desired level of reliability for the DSN comprises:

determining, by the computing device, a desired threshold number of encoded data slices of the set of encoded data slices to be stored at each site of the total number of sites, wherein the desired threshold number is a decode threshold number, a read threshold number, a write threshold number, or a full pillar width threshold number; and

determining, by the computing device, encoded data slice distribution balancing such that no one storage unit in any site of the total number of sites stores a decode threshold number of encoded data slices of the set of encoded data slices.

4 . The method of claim 1 further comprises:

determining, by the computing device, a third high level storage unit processing module to engage in the at least two sites, wherein the third high level storage unit processing module processes data access requests for a third subset of encoded data slices of the set of encoded data slices, and wherein the at least two sites include two of the first, second, and third high level storage unit processing modules;

generating, by the computing device, a third write request of the write requests regarding the third subset of encoded data slices; and

sending, by the computing device, the third write request to the third high level storage unit processing module, wherein the third high level storage unit processing module facilitates storing the third subset of encoded data slices in a third subset of storage units of the set of storage units in each of the at least two sites.

5 . The method of claim 1 , wherein the first write request includes individual write requests for each encoded data slice of the first subset of encoded data slices.

6 . The method of claim 1 , wherein the sending the first write request to the first high level storage unit processing module comprises:

sending, by the computing device, the first write request to other instances of the first high level storage unit processing module in each site of the at least two sites.

7 . The method of claim 1 , wherein the sending the first write request to the first high level storage unit processing module comprises:

sending, by the computing device, the first write request to one instance of the first high level storage unit processing module in one site of the at least two sites, wherein the one instance of the first high level storage unit processing module sends the first write request to other instances of the first high level storage unit processing module in other sites of the at least two sites.

8 . A computing device of a dispersed storage network (DSN), the computing device comprises:

an interface;

memory; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

dispersed storage error encode a data segment of a data object into a set of encoded data slices;

identify a set of storage units for storing the set of encoded data slices;

identify a number of sites in which the set of storage units is located;

determine a number of high level storage unit processing modules to engage at each site of the number of sites, wherein a first high level storage unit processing module processes data access requests for a first subset of encoded data slices of the set of encoded data slices, wherein a second high level storage unit processing module processes data access requests for a second subset of encoded data slices of the set of encoded data slices, and wherein at least two sites of the number of sites include the first and second high level storage unit processing modules;

generate write requests regarding writing the set of encoded data slices to the set of storage units, wherein a first write request of the write requests is regarding the first subset of encoded data slices, and wherein a second write request of the write requests is regarding the second subset of encoded data slices;

send the first write request to the first high level storage unit processing module, wherein the first high level storage unit processing module facilitates storing the first subset of encoded data slices in a first subset of storage units of the set of storage units in each of the at least two sites; and

send the second write request to the second high level storage unit processing module, wherein the second high level storage unit processing module facilitates storing the second subset of encoded data slices in a second subset of storage units of the set of storage units in each of the at least two sites.

9 . The computing device of claim 8 , wherein the processing module is operable to determine the number of high level storage unit processing modules to engage based on:

determining a total number of sites of the DSN;

determining a number of storage units in each site of the total number of sites; and

determining a desired level of reliability for the DSN.

10 . The computing device of claim 9 , wherein the processing module is operable to the determine the desired level of reliability for the DSN by:

determining a desired threshold number of encoded data slices of the set of encoded data slices to be stored at each site of the total number of sites, wherein the desired threshold number is a decode threshold number, a read threshold number, a write threshold number, or a full pillar width threshold number; and

determining encoded data slice distribution balancing such that no one storage unit in any site of the total number of sites stores a decode threshold number of encoded data slices of the set of encoded data slices.

11 . The computing device of claim 9 , wherein the processing module is further operable to:

determine a third high level storage unit processing module to engage in the at least two sites, wherein the third high level storage unit processing module processes data access requests for a third subset of encoded data slices of the set of encoded data slices, and wherein the at least two sites include two of the first, second, and third high level storage unit processing modules;

generate a third write request of the write requests regarding the third subset of encoded data slices; and

send the third write request to the third high level storage unit processing module, wherein the third high level storage unit processing module facilitates storing the third subset of encoded data slices in a third subset of storage units of the set of storage units in each of the at least two sites.

12 . The computing device of claim 9 , wherein the first write request includes individual write requests for each encoded data slice of the first subset of encoded data slices.

13 . The computing device of claim 9 , wherein the processing module is operable to send the first write request to the first high level storage unit processing module by:

sending the first write request to other instances of the first high level storage unit processing module in each site of the at least two sites.

14 . The computing device of claim 9 , wherein the processing module is operable to send the first write request to the first high level storage unit processing module by:

sending the first write request to one instance of the first high level storage unit processing module in one site of the at least two sites, wherein the one instance of the first high level storage unit processing module sends the first write request to other instances of the first high level storage unit processing module in other sites of the at least two sites.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2017
From: KAZI, ASIMUDDIN; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044403/0350 →