IP Library Granted Patent US 8,275,966
Granted Patent B2
US 8,275,966 · App. 12/764,930 · Granted Sep 25, 2012

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,275,966
App. No.
12/764,930
Granted
Sep 25, 2012
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, assigns a virtual address range of a virtual memory associated with the dispersed storage network to the new generation and maps the virtual address range to a physical memory for storage of the data therein.

Claims (62)

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; and

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

assign a vault generation identifier to the new generation;

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

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

2. The dispersed storage device of claim 1 , 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.

3. The dispersed storage device of claim 1 , 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 vault includes a current generation and the new generation; and

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. 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; and

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

assigning a vault generation identifier to the new generation;

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.

14. The method of claim 13 , wherein the determining whether to add the new generation comprises:

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.

15. The method of claim 13 , 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.

16. The method of claim 15 , wherein the vault includes a current generation and the new generation and further comprising:

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

17. The method of claim 15 , 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.

18. The method of claim 15 , 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.

19. The method of claim 18 , 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.

20. The method of claim 18 , wherein the determining the vault generation further comprises:

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

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

Assignments (8)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2013
From: SILICON VALLEY BANK
To: CLEVERSAFE, INC.
Reel/Frame 031058/0255 →
FIRST AMENDMENT TO IPSA Recorded Dec 31, 2012
From: CLEVERSAFE, INC.
To: SILICON VALLEY BANK
Reel/Frame 029555/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2010
From: BAPTIST, ANDREW; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 024268/0306 →