IP Library Granted Patent US 8,886,711
Granted Patent B2
US 8,886,711 · App. 12/947,941 · Granted Nov 11, 2014

File system adapted for use with a dispersed data 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,886,711
App. No.
12/947,941
Granted
Nov 11, 2014
Kind
B2
Abstract

A computer a network interface and a central processing unit. The network interface communicates with a network. The central processing unit (CPU) is operable to receive a networked file system access request packet and to identify a root directory based on the networked file system access request packet. The CPU then identifies a file directory based on the root directory and the networked file system access request packet. The CPU then identifies file object metadata based on the file directory and identifies a set of slice servers based on the file object metadata and the networked file system access request packet. The CPU then issues, via the network interface, a set of commands to a set of slice servers regarding the networked file system access request packet.

Claims (70)

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

receiving an access request packet regarding a set of data slices, wherein a file object is information dispersal algorithm (IDA) encoded to produce the set of data slices and wherein the set of data slices are stored in slice servers of a dispersed data storage network (DDSN);

when the access request packet is regarding reading the file object from the DDSN:

accessing a root directory of a file system based on the access request packet to identify next directory metadata of a next directory;

when the next directory is not cached:

issuing, based on the next directory metadata, commands to one or more of the slice servers to retrieve IDA encoded slices of the next directory; and

decoding the IDA encoded slices of the next directory to recover the next directory;

when the next directory is the home directory for the set of data slices, accessing file object metadata regarding the set of data slices from the next directory;

issuing, based on the file object metadata, a set of commands to the slice servers regarding the set of data slices; and

decoding at least a threshold number of data slices of the set of data slices to recover the file object.

2. The method of claim 1 further comprises:

when the next directory is an intervening directory, entering a loop that includes:

accessing the intervening directory to identify another next directory metadata of another next directory;

when the other next directory is not cached:

issuing, based on the other next directory metadata, commands to one or more of the slice servers to retrieve IDA encoded slices of the other next directory; and

decoding the IDA encoded slices of the other next directory to recover the other next directory;

when the other next directory is not the home directory, repeating the loop for yet another next directory as the other next directory; and

when the other next directory is the home directory, existing the loop; and

accessing the file object metadata regarding the set of data slices from the other next directory.

3. The method of claim 2 further comprises:

when the other next directory is cached, accessing the other next directory from cache memory.

4. The method of claim 1 , wherein the issuing the set of commands issue further comprises:

interpreting the file object metadata to identify the file object; and

identifying the set of slice servers based on the file object.

5. The method of claim 1 further comprises:

when the next directory is cached, accessing the next directory from cache memory.

6. The method of claim 1 further comprises:

when the access request packet is regarding creating the file object:

creating the file object metadata for the file object regarding storage of the file object in the DDSN;

adding the file object metadata to the home directory to produce an updated home directory;

IDA encoding the updated home directory to produce a set of encoded home directory slices; and

issuing commands to the store the set of encoded home directory slices in at least one of the slice servers.

7. The method of claim 1 , wherein the file system comprises one or more of:

Network File System (NFS), Common Internet File System (CIFS), Web-based Distributed Authoring and Versioning (WebDAV), and File Transfer Protocol (FTP).

8. A computer comprises:

a network interface for communicating with a network; and

a central processing unit operable to:

receive an access request packet regarding a set of data slices, wherein a file object is information dispersal algorithm (IDA) encoded to produce the set of data slices and wherein the set of data slices are stored in slice servers of a dispersed data storage network (DDSN);

when the access request packet is regarding reading the file object from the DDSN:

access a root directory of a file system based on the access request packet to identify next directory metadata of a next directory;

when the next directory is not cached:

issue, based on the next directory metadata, commands to one or more of the slice servers to retrieve IDA encoded slices of the next directory; and

decode the IDA encoded slices of the next directory to recover the next directory;

when the next directory is the home directory for the set of data slices, accessing file object metadata regarding the set of data slices from the next directory;

issue, via the network interface and based on the file object metadata, a set of commands to the slice servers regarding the set of data slices; and

decode at least a threshold number of data slices of the set of data slices to recover the file object.

9. The computer of claim 8 , wherein the central processing unit is further operable to:

when the next directory is an intervening directory, enter a loop that includes:

accessing the intervening directory to identify another next directory metadata of another next directory;

when the other next directory is not cached:

issuing, based on the other next directory metadata, commands to one or more of the slice servers to retrieve IDA encoded slices of the other next directory; and

decoding the IDA encoded slices of the other next directory to recover the other next directory;

when the other next directory is not the home directory, repeating the loop for yet another next directory as the other next directory; and

when the other next directory is the home directory, existing the loop; and

access the file object metadata regarding the set of data slices from the other next directory.

10. The computer of claim 9 , wherein the central processing unit is further operable to:

when the other next directory is cached, access the other next directory from cache memory.

11. The computer of claim 8 , wherein the central processing unit is further operable to issue the plurality of commands issue by:

interpreting the file object metadata to identify the file object; and

identifying the set of slice servers based on the file object.

12. The computer of claim 8 , wherein the central processing unit is further operable to:

when the next directory is cached, access the next directory from cache memory.

13. The computer of claim 9 , wherein the central processing unit is further operable to:

when the access request packet is regarding creating the file object:

create the file object metadata for the file object regarding storage of the file object in the DDSN;

add the file object metadata to the home directory to produce an updated home directory;

IDA encoding the updated home directory to produce a set of encoded home directory slices; and

issue commands to the store the set of encoded home directory slices in at least one of the slice servers.

14. The computer of claim 8 , wherein the file system comprises one or more of:

Network File System (NFS), Common Internet File System (CIFS), Web-based Distributed Authoring and Versioning (WebDAV), and File Transfer Protocol (FTP).

Assignments (5)
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 →