IP Library Granted Patent US 8,972,692
Granted Patent B2
US 8,972,692 · App. 14/026,202 · Granted Mar 3, 2015

Dispersed storage network virtual address space

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,972,692
App. No.
14/026,202
Granted
Mar 3, 2015
Kind
B2
Abstract

A dispersed storage network utilizes a virtual address space to store data. The dispersed storage network includes a dispersed storage device for receiving a request relating to a data object stored in the dispersed storage network and determining a virtual memory address assigned to the data object. The virtual memory address is within a virtual memory address range of the virtual address space that is allocated to a vault associated with a user of the data object. The virtual memory address is further assigned to a data slice of a plurality of data slices of the data object. The dispersed storage device uses the virtual memory address to determine an identifier of a storage unit within the dispersed storage network that has the data slice stored therein.

Claims (32)

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

an interface;

a directory including a virtual address space;

a storage unit table; and

a processing module operable to:

receive a request relating to a data object stored within the dispersed storage network via the interface, the request including an object name of the data object and a user identifier of a user associated with the data object;

index into the directory using the object name and the user identifier to determine a virtual memory address assigned to the data object, the virtual memory address being within a virtual memory address range of the virtual address space allocated to a vault associated with the user, the virtual memory address further being assigned to a data slice of a plurality of data slices of the data object; and

index into the storage unit table using the virtual memory address to determine an identifier of a storage unit within the dispersed storage network that has the data slice stored therein.

2. The dispersed storage device of claim 1 , wherein the data object includes data segments, a number of data slices within each of the data segments corresponding to a number of pillars per data segment for the data object, the number of pillars per data segment being constant for the vault associated with the user.

3. The dispersed storage device of claim 2 , wherein the virtual memory address range of the vault includes discrete address ranges, one for each of the pillars of the vault, each of the discrete address ranges being separated from other ones of the discrete address ranges by a predetermined amount.

4. The dispersed storage device of claim 3 , wherein the discrete address ranges for the vault are equidistant from one another within the virtual address space.

5. The dispersed storage device of claim 3 , wherein each of the discrete address ranges includes a plurality of virtual memory addresses, each containing a plurality of most significant bits, the most significant bits remaining constant within each of the discrete address ranges.

6. The dispersed storage device of claim 3 , wherein each pillar within the vault has a pillar number, and the same pillar numbers for each vault are assigned discrete address ranges within the virtual address space near one another.

7. The dispersed storage device of claim 2 , wherein each of the pillars is stored on a separate one of a plurality of storage units.

8. The dispersed storage device of claim 2 , wherein at least one of the pillars is stored on two or more of a plurality of storage units.

9. The dispersed storage device of claim 1 , wherein the virtual memory address corresponds to a slice name of the data slice.

10. The dispersed storage device of claim 1 , wherein the data object includes at least one of a data file, a data block and a real time data stream.

11. The dispersed storage device of claim 1 , wherein the processing module is further operable to dynamically alter the virtual memory address range allocated to the vault based on a trigger.

12. The dispersed storage device of claim 11 , wherein the trigger includes one or more of a command, a schedule and a detected security breach.

13. The dispersed storage device of claim 1 , wherein the virtual memory address is encrypted.

14. The dispersed storage device of claim 1 , wherein the processing module is further operable to dynamically update the storage unit table when the data slice is moved to another storage unit.

15. A method for managing a data object stored within a dispersed storage network, the method comprising:

receiving a request relating to the data object, the request including an object name of the data object and a user identifier of a user associated with the data object;

determining a virtual memory address assigned to the data object using the object name and the user identifier, the virtual memory address being within a virtual memory address range of a virtual address space allocated to a vault associated with the user, the virtual memory address further being assigned to a data slice of a plurality of data slices of the data object; and

determining an identifier of a storage unit within the dispersed storage network that has the data slice stored therein using the virtual memory address.

16. The method of claim 15 , wherein the data object includes data segments, a number of data slices within each of the data segments corresponding to a number of pillars per data segment for the data object, the number of pillars per data segment being constant for the vault associated with the user.

17. The method of claim 16 , wherein the virtual memory address range of the vault includes discrete address ranges, one for each of the pillars of the vault, each of the discrete address ranges being separated from other ones of the discrete address ranges by a predetermined amount.

18. The method of claim 15 , further comprising:

dynamically altering the virtual memory address range allocated to the vault based on a trigger.

19. The method of claim 18 , wherein the trigger includes one or more of a command, a schedule and a detected security breach.

20. The method of claim 15 , further comprising:

dynamically updating a storage unit table maintaining storage unit identifiers and associated data slice names when the data slice is moved to another storage unit.

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 Jun 3, 2019
From: LEGGETTE, WESLEY; DHUSE, GREG; BAPTIST, ANDREW; GLADWIN, S. CHRISTOPHER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049346/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →