IP Library Granted Patent US 9,727,427
Granted Patent B2
US 9,727,427 · App. 14/927,446 · Granted Aug 8, 2017

Synchronizing storage of data copies in a dispersed storage network

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 9,727,427
App. No.
14/927,446
Granted
Aug 8, 2017
Kind
B2
Abstract

A method begins with storage units receiving a request to transfer a copy of a set of encoded data slices from two or more source virtual storage vaults to a destination virtual storage vault. The method continues with each storage unit obtaining a slice transfer map and determining whether the storage unit supports one of the two or more source virtual storage vaults. For each supporting storage unit, the method continues with each supporting storage unit determining, based on the slice transfer map, a sub-set of encoded data slices of the set of encoded data slices that is stored within the one of the two or more source virtual storage vaults by the supporting storage unit. The method continues with the supporting storage unit sending the sub-set of encoded data slices to a corresponding storage unit that is supporting the destination virtual storage vault.

Claims (63)

1. In a dispersed storage network (DSN) that includes a plurality of storage units, wherein the plurality of storage units support a plurality of virtual storage vaults, wherein a first virtual storage vault of the plurality of virtual storage vaults is supported by a first set of storage units of the plurality of storage units, and wherein the first set of storage units is a sub-set of the plurality of storage units, a method comprises:

receiving, by at least some of the plurality of storage units, a request to transfer a copy of a set of encoded data slices from two or more source virtual storage vaults of the plurality of virtual storage vaults to a destination virtual storage vault of the plurality of virtual storage vaults, wherein a data segment of data is dispersed storage error encoded to produce the set of encoded data slices;

obtaining, by each storage unit of the at least some of the plurality of storage units, a slice transfer map that, for the set of encoded data slices, identifies the two or more source virtual storage vaults;

determining, by each storage unit of the at least some of the plurality of storage units, whether the each storage unit supports one of the two or more source virtual storage vaults;

for each supporting storage unit that supports one of the two or more source virtual storage vaults, determining, by the each supporting storage unit and based on the slice transfer map, a sub-set of encoded data slices of the set of encoded data slices that is stored within the one of the two or more source virtual storage vaults by the each supporting storage unit; and

sending, by the each supporting storage unit, the sub-set of encoded data slices to a corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

2. The method of claim 1 further comprises:

receiving the request to transfer in response to a determination that the destination virtual storage vault failed a write request regarding the copy of the set of encoded data slices, wherein the write request is an instruction to write the copy of the set of encoded data slices to each of the two or more source virtual storage vaults and to the destination virtual storage vault.

3. The method of claim 1 further comprises:

receiving the request to transfer as part of a write request to write the copy of the set of encoded data slices to each of the two or more source virtual storage vaults and to the destination virtual storage vault, wherein a first portion of the write request writes the respective sub-sets of encoded data slices to the storage units supporting the two or more source virtual storage vaults and a second portion to transfer the copy of the sets of encoded data slices to the storage units supporting the destination virtual storage vault.

4. The method of claim 1 , wherein the obtaining the slice transfer map comprises one or more of:

receiving the slice transfer map;

retrieving the slice transfer map from memory; and

generating the slice transfer map based on the request to transfer.

5. The method of claim 1 further comprises:

changing, by each of the corresponding storage units of the plurality of storage units that is supporting the destination virtual storage vault, DSN addresses of the set of encoded data slices of the copy of the set of encoded data slices to reflect that the copy is stored in the destination virtual storage vault.

6. The method of claim 5 further comprises:

updating a slice storage table to include the DSN addresses of the set of encoded data slices stored in the destination virtual storage vault.

7. The method of claim 1 , wherein the at least some of the plurality of storage units comprises:

the storage units associated with the two or more source virtual storage vaults; and

the storage units associated with the destination virtual storage vault.

8. The method of claim 1 , wherein the sending the sub-set of encoded data slices comprises:

sending, by a first supporting storage unit, a first encoded data slice to a first corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault;

sending, by a second supporting storage unit, a second encoded data slice to a second corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault;

sending, by a third supporting storage unit, a third encoded data slice to a third corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault; and

sending, by a fourth supporting storage unit, a fourth encoded data slice to a fourth corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

9. The method of claim 1 , wherein the sending the sub-set of encoded data slices comprises:

sending, by a first supporting storage unit, a first and a second encoded data slice to a first corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault; and

sending, by a second supporting storage unit, a third encoded data slice to a second corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

10. A non-transitory computer readable storage medium of a dispersed storage network (DSN) that includes a plurality of storage units, wherein the plurality of storage units support a plurality of virtual storage vaults, wherein a first virtual storage vault of the plurality of virtual storage vaults is supported by a first set of storage units of the plurality of storage units, and wherein the first set of storage units is a sub-set of the plurality of storage units, the non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of the DSN, causes the one or more computing devices to:

receive, by at least some of the plurality of storage units, a request to transfer a copy of a set of encoded data slices from two or more source virtual storage vaults of the plurality of virtual storage vaults to a destination virtual storage vault of the plurality of virtual storage vaults, wherein a data segment of data is dispersed storage error encoded to produce the set of encoded data slices;

obtain, by each storage unit of the at least some of the plurality of storage units, a slice transfer map that, for the set of encoded data slices, identifies the two or more source virtual storage vaults;

determine, by each storage unit of the at least some of the plurality of storage units, whether the each storage unit supports one of the two or more source virtual storage vaults;

for each supporting storage unit that supports one of the two or more source virtual storage vaults, determine, by the each supporting storage unit and based on the slice transfer map, a sub-set of encoded data slices of the set of encoded data slices that is stored within the one of the two or more source virtual storage vaults by the each supporting storage unit; and

send, by the each supporting storage unit, the sub-set of encoded data slices to a corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

11. The non-transitory computer readable storage medium of claim 10 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

receive the request to transfer in response to a determination that the destination virtual storage vault failed a write request regarding the copy of the set of encoded data slices, wherein the write request is an instruction to write the copy of the set of encoded data slices to each of the two or more source virtual storage vaults and to the destination virtual storage vault.

12. The non-transitory computer readable storage medium of claim 10 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

receive the request to transfer as part of a write request to write the copy of the set of encoded data slices to each of the two or more source virtual storage vaults and to the destination virtual storage vault, wherein a first portion of the write request writes the respective sub-sets of encoded data slices to the storage units supporting the two or more source virtual storage vaults and a second portion to transfer the copy of the sets of encoded data slices to the storage units supporting the destination virtual storage vault.

13. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to obtain the slice transfer map comprises by one or more of:

receiving the slice transfer map;

retrieving the slice transfer map from memory; and

generating the slice transfer map based on the request to transfer.

14. The non-transitory computer readable storage medium of claim 10 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

change, by each of the corresponding storage units of the plurality of storage units that is supporting the destination virtual storage vault, DSN addresses of the set of encoded data slices of the copy of the set of encoded data slices to reflect that the copy is stored in the destination virtual storage vault.

15. The non-transitory computer readable storage medium of claim 14 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

update a slice storage table to include the DSN addresses of the set of encoded data slices stored in the destination virtual storage vault.

16. The non-transitory computer readable storage medium of claim 10 , wherein the at least some of the plurality of storage units comprises:

the storage units associated with the two or more source virtual storage vaults; and

the storage units associated with the destination virtual storage vault.

17. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to send the sub-set of encoded data slices by:

sending, by a first supporting storage unit, a first encoded data slice to a first corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault;

sending, by a second supporting storage unit, a second encoded data slice to a second corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault;

sending, by a third supporting storage unit, a third encoded data slice to a third corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault; and

sending, by a fourth supporting storage unit, a fourth encoded data slice to a fourth corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

18. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to send the sub-set of encoded data slices by:

sending, by a first supporting storage unit, a first and a second encoded data slice to a first corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault; and

sending, by a second supporting storage unit, a third encoded data slice to a second corresponding storage unit of the plurality of storage units that is supporting the destination virtual storage vault.

Assignments (6)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2015
From: GRAY, ADAM MICHAEL; DHUSE, GREG; BAPTIST, ANDREW; KHADIWALA, RAVI; LEGGETTE, WESLEY; HORAN, SCOTT MICHAEL; BORICH, FRANCO VINCENT; CILFONE, BART; SCHOLL, DANIEL
To: CLEVERSAFE, INC.
Reel/Frame 037102/0775 →