IP Library Granted Patent US 8,560,798
Granted Patent B2
US 8,560,798 · App. 12/764,275 · Granted Oct 15, 2013

Dispersed storage network virtual address space

Inventors: Wesley Leggette (Oak Park, IL); Greg Dhuse (Chicago, IL); Andrew Baptist (Chicago, IL); S. Christopher Gladwin (Chicago, IL)
Assignee: Cleversafe, Inc.
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,560,798
App. No.
12/764,275
Filed
Apr 21, 2010
Granted
Oct 15, 2013
Kind
B2
Art Unit
2186
USPC
711/170
Abstract

A dispersed storage network utilizes a virtual address space to store data. The dispersed storage network includes a processing unit operable to slice a data segment of a data object into data slices and create a slice name for each of the data slices. The slice name includes an identifier of the data object and a virtual memory address of a virtual memory associated with the dispersed storage network. The processing unit further outputs each of the data slices and the respective slice names to a corresponding storage unit for storage of the data slices therein.

Claims (42)

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

an interface; and

a processing module operable to:

slice each data segment of a data object into data slices, 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 a particular vault associated with at least one user of the dispersed storage network;

create a slice name for each of the data slices, the slice name including an identifier of the data object and a virtual memory address of a virtual memory associated with the dispersed storage network; and

output, via the interface, each of the data slices and the respective slice names to a corresponding storage unit for storage of the data slices therein.

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

receive the data object to be stored; and

segment the data object into data segments.

3. The dispersed storage device of claim 2 , wherein the processing module is further operable to output, via the interface, the data slices to a plurality of storage units such that each of the pillars is stored on a separate one of the plurality of storage units.

4. The dispersed storage device of claim 3 , wherein the processing module is further operable to output, via the interface, the data slices to the plurality of storage units such that at least one of the pillars is stored on two or more of the plurality of storage units.

5. The dispersed storage device of claim 1 , wherein each vault maps to a virtual vault address space of the virtual memory.

6. The dispersed storage device of claim 5 , wherein the virtual vault address space 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 corresponding to a number of addresses within the virtual memory.

7. The dispersed storage device of claim 6 , wherein the discrete address ranges for the vault are equidistant from one another within the virtual memory.

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

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

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 receive a user identity (ID) and object name associated with the data object, the identifier of the data object including user file information determined from the user ID and object name.

12. A method for storage of a data object, comprising:

slicing each data segment of the data object into data slices, 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 a particular vault associated with at least one user of the dispersed storage network;

creating a slice name for each of the data slices, the slice name including an identifier of the data object and a virtual memory address of a virtual memory associated with the dispersed storage network; and

outputting each of the data slices and the respective slice names to a corresponding storage unit for storage of the data slices therein.

13. A storage unit within a dispersed storage network, comprising:

an interface;

a memory; and

a processing module operable to:

receive a data slice of a data segment of a data object to be stored, the data slice corresponding to a pillar of the data object, a number of pillars per data segment of the data object being constant for a particular vault associated with at least one user of the dispersed storage network;

receive a slice name identifying the data slice, the slice name including an identifier of the data object and a virtual memory address of a virtual memory associated with the dispersed storage network;

translate the virtual memory address into a physical location within the memory; and

store the data slice and the slice name in the physical location of the memory.

14. The method of claim 12 , further comprising:

receiving the data object to be stored; and

segmenting the data object into data segments.

15. The method of claim 14 , wherein the outputting further comprises:

outputting the data slices to a plurality of storage units such that at least one of the pillars is stored on two or more of the plurality of storage units.

16. The method of claim 14 , wherein the vault associated with the at least one user of the dispersed storage network maps to a virtual vault address space of the virtual memory, the virtual vault address space including 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 corresponding to a number of addresses within the virtual memory.

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

18. The method of claim 16 , wherein each pillar within the vault has a pillar number, and the same pillar numbers for each of the vaults are assigned discrete address ranges near one another.

19. The method of claim 14 , wherein the outputting further comprises:

outputting the data slices to a plurality of storage units such that each of the pillars is stored on a separate one of the plurality of storage units.

20. The method of claim 12 , further comprising:

receiving a user identity (ID) and object name associated with the data object, the identifier of the data object including user file information determined from the user ID and object name.

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 Apr 21, 2010
From: LEGGETTE, WESLEY; DHUSE, GREG; BAPTIST, ANDREW; GLADWIN, S. CHRISTOPHER
To: CLEVERSAFE, INC.
Reel/Frame 024264/0827 →
Continuity (2)
Provisional Application 61230019 · Jul 30, 2009
Related Publication 20110029744A1 · Feb 3, 2011