IP Library Granted Patent US 8,819,011
Granted Patent B2
US 8,819,011 · App. 12/839,209 · Granted Aug 26, 2014

Command line interpreter 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,819,011
App. No.
12/839,209
Granted
Aug 26, 2014
Kind
B2
Abstract

A user device includes a DSN interface operably coupled with a DSN memory and a DS processing module for storing and retrieving a data object from the DSN memory, wherein the data object is partitioned 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 user device also includes a command line interpreter operable to interpret a file command as a request to display the data object by an application program, determine the data object is stored in the DSN memory and request the DSN processing module to retrieve the data object from the DSN memory and provide the data object to the application program.

Claims (93)

1. A method for displaying a data object, wherein the data object is stored in a distributed storage network (DSN) memory, comprises:

interpreting a file command to display the data object by a command line interpreter operating on a user device, wherein the file command includes a file name of the data object;

determining an application program to process the data object based on the file command;

determining the data object is stored in the DSN memory based on the file name, wherein the data object is stored as an X number of encoded data slices and wherein a threshold T number corresponds to a threshold value of the plurality of encoded data slices needed to reconstruct the data object using an error encoding dispersal storage function and wherein X>T;

requesting a DSN processing module to retrieve the data object from the DSN memory, wherein the DSN processing module is operable to:

translate the filename into a virtual DSN address to determine a location of the data object in the DSN memory, wherein the filename includes a vault identifier of a virtual DSN address space assigned to the user device;

retrieve at least a number T of the X number of encoded data slices;

reconstruct the data object from at least the number T of the encoded data slices; and

provide the data object to the application program; and

requesting the application program to input the data object and process the data object for display.

2. The method of claim 1 , wherein the file name for the data object includes a domain name for the DSN memory, a data object name and a file type identifier.

3. The method of claim 2 , wherein determining an application program to process the data object based on the file command includes:

determining a file type of the data object based on the file type identifier, wherein the file type is a multimedia file; and

identifying a multimedia player to display the data object based on the file type.

4. The method of claim 3 , further comprising:

retrieving the data object by the DSN processing module by streaming sequential data segments of the data object.

5. The method of claim 4 , wherein retrieving the data object by the DSN processing module by streaming sequential data segments of the data object includes:

translating the filename into a virtual DSN address to determine a location of the data object in the DSN memory, wherein the data object is stored as a plurality of data segments;

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

retrieving at least the number T of the encoded data slices for the identified 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 data segment based on an error encoding dispersal function;

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

providing the reconstructed data segment to the multimedia player.

6. The method of claim 5 , further comprising:

processing the reconstructed data segment by the multimedia player to generate multimedia content; and transmitting the multimedia content by the multimedia player to a graphical user interface for display.

7. The method of claim 1 , wherein the DSN processing module is further operable to:

determine a plurality of virtual slice addresses for the plurality of encoded data slices using the virtual DSN address, wherein a virtual slice address includes:

a slice index based on the vault identifier and a pillar identifier that identifies a pillar associated with the data slice; and

a source data name containing an identifier of 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;

a DS processing module coupled to the DSN interface and is operable for storing and retrieving the data object from the DSN memory by:

assigning an address to the data object from a virtual DSN address space associated with the user device;

partitioning the data object into a plurality of data segments;

generating a plurality of encoded data slices based on an error encoding dispersal function;

assigning a slice name to each of the plurality of encoded data slices, wherein the slice name includes a vault identifier that identifies the virtual DSN address space associated with the user device;

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

reconstructing the data object from at least the number T of the plurality of encoded data slices; and

a command line interpreter operating in the user device operable to:

interpret a file command to display the data object, wherein the file command includes a file name of the data object;

determine an application program to process the data object based on the file command;

determine the data object is stored in the DSN memory based on the file name;

request the DSN processing module to retrieve the data object from the DSN memory and provide the data object to the application program; and

request the application program to receive the data object and process the data object for display.

9. The user device of claim 8 , wherein the file name for the data object includes a local drive of the user device that is mapped to the DSN memory and wherein the command line interpreter is further operable to determine that the data object is stored in the DSN memory based on the local drive.

10. The user device of claim 9 , wherein the command line interpreter is further operable to:

determine a file type of the data object based on the file type identifier, wherein the file type is a multimedia file; and

identify a multimedia player to display the data object based on the file type.

11. The user device of claim 10 , wherein the DS processing module is operable to:

retrieve the data object from the DSN memory by streaming sequential data segments of the data object.

12. The user device of claim 11 , wherein the DS processing module is operable to:

translate the filename into a virtual DSN address to determine a location of the plurality of encoded data slices of the data object in the DSN memory;

identify a next sequential data segment of the plurality of data segments to generate an identified data segment;

retrieve at least the number T of the plurality of encoded data slices for the identified data segment from the DSN memory;

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

providing the reconstructed data segment to the multimedia player.

13. The user device of claim 12 , wherein the multimedia player is operable to:

process the reconstructed data segment to generate multimedia content; and

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

14. A user device for displaying 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;

a DS processing module coupled to the DSN interface and is operable for storing and retrieving the data object from the DSN memory by:

partitioning the data object into a plurality of data segments;

for each of the plurality of data segments in the DSN memory, generating a plurality of encoded data slices based on an error encoding dispersal function;

assigning a slice name to each of the plurality of encoded data slices, wherein the slice name includes a vault identifier that identifies a virtual DSN address space associated with the user device and storing the plurality of encoded data slices in the DSN memory;

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

reconstructing the data object from at least the number T of the plurality of encoded data slices;

a command line interpreter operable to interpret a file command to display the data object, wherein the file command includes a file name of the data object; and

an application program operating in the user device that is operable to:

receive the file name of the data object from the command line interface;

determine the data object is stored in the DSN memory based on the file name;

request the DSN processing module to retrieve the data object from the DSN memory; and

process the data object for display.

15. The user device of claim 14 , wherein the file name for the data object includes a domain name for the DSN memory, a data object name and a file type identifier.

16. The user device of claim 15 , wherein the command line interpreter is further operable to:

determine a file type of the data object based on the file type identifier; and

interpret the file command to launch the application program.

17. The user device of claim 15 , wherein the DS processing module is operable to store the plurality of the plurality of encoded data slices in the DSN memory by:

assigning the plurality of encoded data slices to a plurality of pillars of the DSN memory for storing the data object, wherein a data slice of each of the plurality of data segments of the data object is assigned to one of the pillars of the plurality of pillars.

18. The user device of claim 15 , wherein the slice name further includes:

a slice index based on the vault identifier and a pillar identifier that identifies a pillar associated with the data slice; and

a source data name containing an identifier of the data object.

19. The user device of claim 14 , wherein the DS processing module is operable to:

retrieve the data object from the DSN memory by streaming sequential data segments of the data object.

20. The user device of claim 19 , wherein the DS processing module is further operable to:

translate the filename into a virtual DSN address to determine a location of the plurality of encoded data slices of the data object in the DSN memory;

identify a next sequential data segment of the plurality of data segments to generate an identified data segment;

retrieve at least the number T of the plurality of encoded data slices for the identified data segment from the DSN memory;

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

providing the reconstructed data segment to the application program.

21. The user device of claim 14 , wherein the DS processing module is operable for storing each of the plurality of data segments in the DSN memory as a plurality of encoded data slices that are generated based on an error encoding dispersal function by:

storing each of the plurality of encoded data slices for one of the plurality of data segments in a different storage unit in the DSN memory.

22. The user device of claim 21 , wherein the DS processing module is further operable to:

access a virtual DSN address space of the DSN memory assigned to the user device to determine physical addresses of the plurality of encoded data slices for the one of the plurality of data segments stored in the different storage units in the DSN memory.

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 Oct 4, 2010
From: MOTWANI, MANISH; GLADWIN, S. CHRISTOPHER; YOUNG, JESSE LOUIS; ENGLAND, MATTHEW MICHAEL
To: CLEVERSAFE, INC.
Reel/Frame 025083/0409 →