IP Library Granted Patent US 8,886,905
Granted Patent B2
US 8,886,905 · App. 13/594,199 · Granted Nov 11, 2014

Dispersed storage network virtual address generations

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 8,886,905
App. No.
13/594,199
Granted
Nov 11, 2014
Kind
B2
Abstract

A dispersed storage device within a dispersed storage network includes a processing module for determining whether to add a new generation for a vault, in which the vault identifies at least one user having data to be stored. When the new generation is to be added to the vault, the processing module further assigns a vault generation identifier to the new generation and reserves memory for the new generation.

Claims (59)

1. A dispersed storage device for use within a dispersed storage network, comprising:

a processing module operable to:

determine whether to add a new generation for a vault, the vault identifying at least one user having data to be stored, the vault including a current generation: and

when the new generation is to be added to the vault:

assign a vault generation identifier to the new generation; and reserve memory for the new generation;

wherein data stored in the current generation is different from data stored the new generation.

2. The dispersed storage device of claim 1 , wherein the processing module is further operable to reserve memory for the new generation by:

assigning a virtual address range of a virtual memory associated with the dispersed storage network to the new generation; and

mapping the virtual address range to a physical memory for storage of the data therein.

3. The dispersed storage device of claim 2 , wherein the physical memory includes a plurality of storage units and further comprising:

a table mapping the respective virtual address range of each generation of the vault to corresponding ones of the plurality of storage units.

4. The dispersed storage device of claim 3 , wherein:

the data associated with the current generation is stored in different ones of the plurality of storage units than the data associated with the new generation.

5. The dispersed storage device of claim 3 , wherein the processing module is further operable to:

detect a new storage unit of the plurality of storage units;

compare storage utilization within the physical memory of a current generation of the vault to a generation utilization threshold;

when the storage utilization compares unfavorably to the generation utilization threshold, add the new generation.

6. The dispersed storage device of claim 5 , wherein the processing module is further operable to:

when the storage utilization compares favorably to the generation utilization threshold:

transfer at least a portion of the data from an existing storage unit of the plurality of storage units to the new storage unit; and

update the table.

7. The dispersed storage device of claim 3 , further comprising an interface, and wherein the processing module is further operable to:

determine a vault generation of a data object;

slice a data segment of the data object into data slices, a number of the data slices corresponding to a number of pillars for storing the data object;

create a slice name for each of the data slices, the slice name including a virtual memory address within a corresponding virtual address range of the vault generation, the virtual memory address including a pillar identifier that identifies a pillar associated with the data slice, the virtual address range being assigned to the pillar; and

output, via the interface, a data slice of the data slices and the respective slice name to a corresponding one of the plurality of storage units for storage therein.

8. The dispersed storage device of claim 7 , wherein the number of pillars is based on the vault generation and each of the pillars of the vault generation is assigned to a different one of the plurality of storage units.

9. The dispersed storage device of claim 7 , wherein the processing module is further operable to:

determine storage utilization within the physical memory of each generation of the vault; and

select the vault generation for the data object based on the storage utilization of each generation.

10. The dispersed storage device of claim 3 , wherein the processing module is further operable to randomly assign the virtual address range to the new generation.

11. The dispersed storage device of claim 3 , wherein the processing module is further operable to utilize a sequential assignment algorithm to assign the virtual address range to the new generation in a sequential manner and to update the table to assign different ones of the plurality of storage units to each generation of the vault.

12. The dispersed storage device of claim 3 , wherein the processing module is further operable to utilize an even distribution algorithm to assign the virtual address range to the new generation such that adjacent vault generations are automatically assigned to different ones of the plurality of storage units within the table.

13. The dispersed storage device of claim 2 , wherein the processing module is further operable to determine whether to add the new generation by:

comparing storage utilization within the physical memory of a current generation of the vault to a generation utilization threshold; and

when the storage utilization compares unfavorably to the generation utilization threshold, adding the new generation.

14. A method for managing data storage within a dispersed storage network, the method comprising:

determining whether to add a new generation for a vault, the vault identifying at least one user having data to be stored, the vault including a current generation; and when the new generation is to be added to the vault:

assigning a vault generation identifier to the new generation; and

reserving memory for the new generation;

wherein data stored in the current generation is different from data stored in the new generation.

15. The method of claim 14 , wherein the reserving memory comprises:

assigning a virtual address range of a virtual memory associated with the dispersed storage network to the new generation; and

mapping the virtual address range to a physical memory for storage of the data therein.

16. The method of claim 15 , wherein the physical memory includes a plurality of storage units and further comprising:

maintaining a table mapping the respective virtual address range of each generation of the vault to corresponding ones of the plurality of storage units.

17. The method of claim 16 , further comprising:

storing the data associated with the current generation in different ones of the plurality of storage units than the data associated with the new generation.

18. The method of claim 16 , wherein the determining whether to add the new generation further comprises:

detecting a new storage unit of the plurality of storage units;

comparing storage utilization within the physical memory of a current generation of the vault to a generation utilization threshold;

when the storage utilization compares unfavorably to the generation utilization threshold, adding the new generation.

19. The method of claim 16 , further comprising:

determining a vault generation of a data object;

slicing a data segment of the data object into data slices, a number of the data slices corresponding to a number of pillars for storing the data object;

creating a slice name for each of the data slices, the slice name including a virtual memory address within a corresponding virtual address range of the vault generation, the virtual memory address including a pillar identifier that identifies a pillar associated with the data slice, the virtual address range being assigned to the pillar; and

outputting a data slice of the data slices and the respective slice name to a corresponding one of the plurality of storage units for storage therein.

20. The method of claim 19 , wherein the number of pillars is based on the vault generation and further comprising:

assigning each of the pillars of the vault generation to a different one of the plurality of storage units.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: BAPTIST, ANDREW; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 038161/0326 →