IP Library Granted Patent US 8,630,987
Granted Patent B2
US 8,630,987 · App. 12/839,220 · Granted Jan 14, 2014

System and method for accessing a data object stored in a distributed 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 8,630,987
App. No.
12/839,220
Granted
Jan 14, 2014
Kind
B2
Abstract

A user device includes a browser module, a DSN interface to a local or external DSN memory and a DS processing module coupled to the DSN interface for storing and retrieving the data object from the DSN memory, wherein the data object is divided into a plurality of data segments and wherein each of the plurality of data segments is stored in the DSN memory as a plurality of encoded data slices that are generated based on an error encoding dispersal function. The browser module is operable to interpret a user input as a request to display a data object, determine the data object is stored in the DSN memory, request the DS processing module to retrieve the data object from the DSN memory and request an application program to open the data object for display.

Claims (66)

1. A user device for retrieving a data object stored in a distributed storage network (DSN) memory, comprises:

at least one DS processing module;

a DSN interface that is operably coupled to interface with the DSN memory;

a browser module that is operable to interpret a user input to produce a file command, wherein the file command includes a file name for the data object;

an application program operating in the user device with the at least one DS processing module operable to:

receive the file command from the browser module;

determine that the data object is stored in the DSN memory based on the file name for the data object, wherein the data object is encoded using a dispersed storage error encoding function to produce a set of encoded data segments and interleaving an encoded data segment of the set of encoded data segments into a number X of a plurality of encoded data slices wherein the number X of the plurality of encoded data slices is stored in the DSN memory and wherein the data object is encoded using the error encoding dispersal storage function by:

arranging data blocks of the data object into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging data blocks of the encoded data matrix into the set of encoded data segments;

determine a virtual DSN address for the data object;

retrieve from the DSN memory at least a number T of the number X of the plurality of encoded data slices needed to reconstruct the data object based on the error encoding dispersal storage function for the data, wherein the number T equals less than the number X of the plurality of encoded data; and

reconstructing the data object from at least the number T of the plurality of encoded data slices to produce a reconstructed data object; and

process the file data for display on a graphical user interface of the user device.

2. The user device of claim 1 , wherein the application program in the user device is further operable to:

sequentially stream the plurality of data segments of the data object by:

identifying a next sequential data segment of the data object to generate an identified data segment;

retrieving at least a number T of the plurality of encoded data slices for the identified next sequential data segment from the DSN memory, wherein the number T corresponds to a number of the plurality of encoded data slices needed to reconstruct the identified next sequential data segment based on the error encoding dispersal function; and

reconstructing the identified next sequential data segment from at least the number T of the plurality of encoded data slices to produce a reconstructed data segment.

3. The user device of claim 1 , wherein the file name for the data object includes a domain name for the DSN memory and wherein the application program in the user device is further operable to determine that the data object is stored in the DSN memory based on the domain name for DSN memory.

4. The user device of claim 1 , wherein the file name for the data object includes a local drive of the user device mapped to the DSN memory and wherein the application program in the user device is further operable to determine that the data object is stored in the DSN memory based on the local drive.

5. The user device of claim 1 , wherein the file name for the data object includes a virtual DSN address and wherein the application program in the user device is further operable to determine that the data object is stored in the DSN memory based on the virtual DSN address.

6. The user device of claim 1 , wherein the application program is further operable to:

determine the virtual DSN address for the data object by accessing a virtual DSN address space associated with the user device, wherein the virtual DSN address space also includes a plurality of other virtual DSN address spaces associated with other user devices.

7. The user device of claim 6 , wherein the application program is further operable to:

determine a physical location for the data object by accessing a virtual DSN address to physical location table that includes a physical location of the plurality of encoded data slices for the data object.

8. A user device for retrieving a data object, wherein the data object is stored in a distributed storage network (DSN) memory, comprises:

a DSN interface that is operably coupled to interface with the DSN memory;

at least one DS processing module coupled to the DSN interface for storing and retrieving the data object from the DSN memory, wherein the data object is divided into a plurality of data segments and wherein each of the plurality of data segments is encoded using an error encoding dispersal function to generate a plurality of encoded data segments and wherein each of the plurality of encoded data segments is separated into an X number of plurality of encoded data slices for storage in the DSN memory and wherein the data object is encoded using the error encoding dispersal storage function by:

arranging data blocks of the data object into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging data blocks of the encoded data matrix into the set of encoded data segments; and

a browser module operable to:

interpret a user input as a request to display the data object;

determine the data object is stored in the DSN memory;

request the DS processing module to retrieve the data object stored in the DSN memory;

receive at least a number T of the plurality of encoded data slices, wherein the number T equals less than the X number of the plurality of encoded data slices and equals a number of the plurality of encoded data slices needed to reconstruct the data object based on the error encoding dispersal storage function;

reconstruct the data object from at least the number T of the plurality of encoded data slices to produce a reconstructed data object; and

process the data object for display.

9. The user device of claim 8 , wherein the browser module is further operable to:

determine the data object is stored in the DSN memory based on a file name for the data object.

10. The user device of claim 9 , wherein the file name for the data object includes a domain name for the DSN memory and wherein the browser is further operable to determine that the data object is stored in the DSN memory based on the domain name for the DSN memory.

11. The user device of claim 9 , wherein the file name for the data object includes a virtual DSN address for the DSN memory and wherein the browser is further operable to determine that the data object is stored in the DSN memory based on the virtual DSN address for the DSN memory.

12. The user device of claim 11 , wherein the browser is further operable to:

translate the virtual DSN address in the file name into a physical address for the plurality of encoded data slices of the data object.

13. The user device of claim 12 wherein the browser module is further operable to:

sequentially retrieve the plurality of data segments of the data object by:

identifying a next sequential data segment of the data object to generate an identified data segment;

retrieving at least a number T of the plurality of encoded data slices for the identified next sequential data segment from the DSN memory, wherein the number T corresponds to a number of the plurality of encoded data slices needed to reconstruct the identified next sequential data segment based on an error encoding dispersal function; and

reconstructing the identified next sequential data segment from at least the number T of the plurality of encoded data slices to produce a reconstructed data segment.

14. A method for generating streaming multimedia content from a data object, wherein the data object is stored in a distributed storage network (DSN) memory, comprises:

receiving a file command to display multimedia content from the data object, wherein the file command includes a filename for the data object;

determining the data object is stored in the DSN memory based on the file name, wherein the data object is divided into a plurality of data segments and wherein each of the plurality of data segments is encoded using an error encoding dispersal function to generate a plurality of encoded data segments and wherein each of the plurality of encoded data segments is interleaved into an X number of plurality of encoded data slices for storage in the DSN memory and wherein the data object is encoded using the error encoding dispersal storage function by:

arranging data blocks of the data object into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging data blocks of the encoded data matrix into the set of encoded data segments;

determining a virtual DSN address for the data object based on the file name;

sequentially retrieving a plurality of data segments of the data object by:

identifying a next sequential data segment of the data object to generate an identified data segment;

retrieving at least a number T of a plurality of encoded data slices for the identified data segment from the DSN memory, wherein the number T is less than the number X and corresponds to a number of the plurality of encoded data slices needed to reconstruct the identified data segment based on the error encoding dispersal function; and

reconstructing the identified data segment from at least the number T of the plurality of encoded data slices to produce a reconstructed data segment;

processing the reconstructed data segment to generate the multimedia content; and

transmitting the multimedia content to a graphical user interface for display.

15. The method of claim 14 , wherein the file name for the data object includes a user vault identifier.

16. The method of claim 15 , wherein determining a virtual DSN address for the data object includes:

accessing a user vault in a virtual DSN address space based on the user vault identifier in the file name for the data object.

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 Jul 23, 2010
From: DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 024734/0479 →