IP Library Granted Patent US 8,918,674
Granted Patent B2
US 8,918,674 · App. 12/942,992 · Granted Dec 23, 2014

Directory file system in a dispersed 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,918,674
App. No.
12/942,992
Granted
Dec 23, 2014
Kind
B2
Abstract

A method begins by a processing module receiving a data storage request, wherein the data storage request includes data and a data identifier (ID). The method continues with the processing module dispersed storage error encoding the data to produce a set of encoded data slices and determining a data dispersed storage network (DSN) address. The method continues with the processing module sending the set of encoded data slices to a DSN memory for storage at the data DSN address and updating a directory file with path information corresponding to the data ID and the data DSN address to produce an updated directory file. The method continues with the processing module dispersed storage error encoding the updated directory file to produce a set of encoded updated directory slices and sending the set of encoded updated directory slices to the DSN memory for storage at a directory DSN address.

Claims (122)

1. A method for execution by a computing device, the method comprises:

determining a root directory dispersed storage network (DSN) address of a root directory regarding a request to read data;

retrieving, based on the root directory DSN address, a set of encoded root directory slices from a dispersed storage network (DSN) memory, wherein the set of encoded root directory slices corresponds to a data identifier (ID) of the data;

dispersed storage error decoding the set of encoded root directory slices to reproduce a root directory;

when a filename corresponding to the data ID is not stored in the root directory, entering a processing sequence that includes:

extracting a current intermediate directory DSN address from a preceding directory;

retrieving a set of encoded current intermediate directory slices from the DSN memory based on the current intermediate directory DSN address;

dispersed storage error decoding the set of encoded current intermediate directory slices to reproduce a current intermediate directory;

when the filename is not stored in the current intermediate directory, repeating the processing sequence for a next current intermediate directory DSN address; and

when the filename is stored in the current intermediate directory, extracting a data DSN address and exiting the processing sequence;

retrieving a set of encoded data slices from the DSN memory based on a data DSN address, the set of encoded data slices including a plurality of subsets of encoded data slices, each of the plurality of subsets of encoded data slices corresponding to a data segment of a plurality of data segments of the data, a number of encoded data slices within each of the subsets of encoded data slices corresponding to a number of pillars for each of the plurality of data segments, the number of pillars for each of the plurality of data segments being constant for a vault associated with a user of the data; and

dispersed storage error decoding the set of encoded data slices to reproduce the data.

2. The method of claim 1 further comprises:

when the filename is stored in the root directory, extracting the data DSN address from the root directory.

3. The method of claim 1 , wherein the data ID comprises at least one of:

the filename;

a directory name;

a path; and

a block number.

4. The method of claim 1 , wherein the retrieving the set of encoded root directory slices comprises:

determining a root directory DSN address based on at least one of:

a predetermination;

a user ID;

a user vault lookup based on the user ID; and

the data ID; and

retrieving the set of encoded root directory slices from the DSN memory based on the root directory DSN address.

5. The method claim 1 , wherein the current intermediate directory DSN address comprises at least one of:

a source name; and

at least one slice name.

6. The method claim 1 , wherein each of the root directory and the current intermediate directory comprises at least one of:

a filename;

a path;

a size indicator; and

a DSN address.

7. A method for execution by a computing device, the method comprises:

receiving a data storage request, wherein the data storage request includes data and a data identifier (ID);

dispersed storage error encoding the data to produce a set of encoded data slices, the set of encoded data slices including a plurality of subsets of encoded data slices, each of the plurality of subsets of encoded data slices corresponding to a data segment of a plurality of data segments of the data, a number of encoded data slices within each of the subsets of encoded data slices corresponding to a number of pillars for each of the plurality of data segments, the number of pillars for each of the plurality of data segments being constant for a vault associated with a user of the data;

determining a data dispersed storage network (DSN) address based on the data ID;

sending the set of encoded data slices to a DSN memory for storage at the data DSN address;

updating a directory file with path information corresponding to the data ID and the data DSN address to produce an updated directory file;

dispersed storage error encoding the updated directory file to produce a set of encoded updated directory slices; and

sending the set of encoded updated directory slices to the DSN memory for storage at a directory DSN address.

8. The method of claim 7 , wherein the updating the directory file further comprises:

determining whether the directory file is stored in the DSN memory;

when the directory file is stored in the DSN memory:

retrieving a set of encoded directory slices from the DSN memory based on the directory DSN address; and

dispersed storage error decoding the set of encoded directory slices to reproduce the directory file; and

when the directory file is not stored in the DSN memory:

creating the directory file to include at least one of a filename field, a path field, a size indicator field, and a DSN address field.

9. The method of claim 7 , wherein the updating the directory file further comprises:

obtaining a parent directory;

updating the parent directory with the directory DSN address and at least a portion of the data ID to produce an updated parent directory;

dispersed storage error encoding the updated parent directory to produce a set of encoded updated parent directory slices; and

sending the set of encoded updated parent directory slices to the DSN memory for storage at a parent directory DSN address.

10. The method of claim 7 , wherein the data DSN address comprises at least one of:

a source name; and

at least one slice name.

11. The method of claim 7 , wherein the directory file comprises:

one or more directories, wherein a directory of the one or more directories includes at least one of a filename, a path, a size indicator, and a DSN address.

12. A computer comprises:

an interface; and

a processing module operable to:

determine a root directory dispersed storage network (DSN) address of a root directory regarding a request to read data;

retrieve, via the interface and based on the root directory DSN address, a set of encoded root directory slices from a dispersed storage network (DSN) memory, wherein the set of encoded root directory slices corresponds to a data identifier (ID) of the data;

dispersed storage error decode the set of encoded root directory slices to reproduce a root directory;

when a filename corresponding to the data ID is not stored in the root directory, enter a processing sequence that includes:

extracting a current intermediate directory DSN address from a preceding directory;

retrieving, via the interface, a set of encoded current intermediate directory slices from the DSN memory based on the current intermediate directory DSN address;

dispersed storage error decoding the set of encoded current intermediate directory slices to reproduce a current intermediate directory;

when the filename is not stored in the current intermediate directory, repeating the processing sequence for a next current intermediate directory DSN address; and

when the filename is stored in the current intermediate directory, extracting a data DSN address and exiting the processing sequence;

retrieve, via the interface, a set of encoded data slices from the DSN memory based on a data DSN address, the set of encoded data slices including a plurality of subsets of encoded data slices, each of the plurality of subsets of encoded data slices corresponding to a data segment of a plurality of data segments of the data, a number of encoded data slices within each of the subsets of encoded data slices corresponding to a number of pillars for each of the plurality of data segments, the number of pillars for each of the plurality of data segments being constant for a vault associated with a user of the data; and

dispersed storage error decoding the set of encoded data slices to reproduce the data.

13. The computer of claim 12 , wherein the processing module further functions to:

extract the data DSN address from the root directory when the filename is stored in the root directory.

14. The computer of claim 12 , wherein the data ID comprises at least one of:

the filename;

a directory name;

a path; and

a block number.

15. The computer of claim 12 , wherein the processing module further functions to retrieve the set of encoded root directory slices by:

determining a root directory DSN address based on at least one of:

a predetermination;

a user ID;

a user vault lookup based on the user ID; and

the data ID; and

retrieving, via the interface, the set of encoded root directory slices from the DSN memory based on the root directory DSN address.

16. The computer claim 12 , wherein the current intermediate directory DSN address comprises at least one of:

a source name; and

at least one slice name.

17. The computer claim 12 , wherein each of the root directory and the current intermediate directory comprises at least one of:

a filename;

a path;

a size indicator; and

a DSN address.

18. A computer comprises:

an interface; and

a processing module operable to:

receive, via the interface, a data storage request, wherein the data storage request includes data and a data identifier (ID);

dispersed storage error encode the data to produce a set of encoded data slices, the set of encoded data slices including a plurality of subsets of encoded data slices, each of the plurality of subsets of encoded data slices corresponding to a data segment of a plurality of data segments of the data, a number of encoded data slices within each of the subsets of encoded data slices corresponding to a number of pillars for each of the plurality of data segments, the number of pillars for each of the plurality of data segments being constant for a vault associated with a user of the data;

determine a data dispersed storage network (DSN) address based on the data ID;

send, via the interface, the set of encoded data slices to a DSN memory for storage at the data DSN address;

update a directory file with path information corresponding to the data ID and the data DSN address to produce an updated directory file;

dispersed storage error encode the updated directory file to produce a set of encoded updated directory slices; and

send, via the interface, the set of encoded updated directory slices to the DSN memory for storage at a directory DSN address.

19. The computer of claim 18 , wherein the processing module further functions to update the directory file by:

determining whether the directory file is stored in the DSN memory;

when the directory file is stored in the DSN memory:

retrieving, via the interface, a set of encoded directory slices from the DSN memory based on the directory DSN address; and

dispersed storage error decoding the set of encoded directory slices to reproduce the directory file; and

when the directory file is not stored in the DSN memory:

creating the directory file to include at least one of a filename field, a path field, a size indicator field, and a DSN address field.

20. The computer of claim 18 , wherein the processing module further functions to update the directory file by:

obtaining a parent directory;

updating the parent directory with the directory DSN address and at least a portion of the data ID to produce an updated parent directory;

dispersed storage error encoding the updated parent directory to produce a set of encoded updated parent directory slices; and

sending, via the interface, the set of encoded updated parent directory slices to the DSN memory for storage at a parent directory DSN address.

21. The computer of claim 18 , wherein the data DSN address comprises at least one of:

a source name; and

at least one slice name.

22. The computer of claim 18 , wherein the directory file comprises:

one or more directories, wherein a directory of the one or more directories includes at least one of a filename, a path, a size indicator, and a DSN address.

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 Nov 9, 2010
From: RESCH, JASON K.; BAPTIST, ANDREW; PALTHEPU, SRINIVAS; DHUSE, GREG; VOLVOVSKI, ILYA; LEGGETTE, WESLEY; MOTWANI, MANISH
To: CLEVERSAFE, INC.
Reel/Frame 025337/0056 →