IP Library Granted Patent US 8,965,956
Granted Patent B2
US 8,965,956 · App. 12/649,099 · Granted Feb 24, 2015

Integrated client 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,965,956
App. No.
12/649,099
Granted
Feb 24, 2015
Kind
B2
Abstract

An integrated client computer for accessing a dispersed data storage network is disclosed. A client program operating on the client computer accepts commands from a user and in response, issues network messages to a plurality of slice servers implementing a dispersed data storage network. Data slices can be read, written or modified using the disclosed integrated client computer.

Claims (51)

1. A method for execution by a computer to access a file in a dispersed storage network (DSN), the method comprises:

receiving a read request to read data;

retrieving, in response to the read request, at least a minimum number of root directory slices from the DSN, wherein a root directory was encoded using an information dispersal algorithm to produce a plurality of root directory slices that is stored in the DSN and wherein the minimum number of root directory slices is less than the plurality of root directory slices;

applying the information dispersal algorithm on at least the minimum number of root directory slices to reconstruct the root directory;

identifying one or more intervening directories including a home directory of the data, from the reconstructed root directory based on the read request;

retrieving a minimum number of intervening directory slices from the one or more intervening directories from the DSN, wherein the one or more intervening directories was encoded using the information dispersal algorithm to produce a plurality of intervening directory slices that is stored in the DSN and wherein the minimum number of intervening directory slices is less than the plurality of intervening directory slices;

applying the information dispersal algorithm on the minimum number of intervening directory slices to reconstruct the one or more intervening directories;

identifying the home directory from the reconstructed one or more intervening directories;

identifying file object metadata from the home directory, wherein the file object metadata identifies data slices and wherein the data is encoded using the information dispersal algorithm to produce the data slices;

issuing commands to retrieve at least a minimum number of data slices to reconstruct the data; and

when at least the minimum number of data slices have been received, applying the information dispersal algorithm on at least the minimum number of data slices to reconstruct the data.

2. The method of claim 1 further comprises:

prior to retrieving at least the minimum number of root directory slices, determining whether the root directory is stored in cache memory of the computer; and

when the root directory is stored in the cache memory, accessing the root directory from the cache memory.

3. The method of claim 1 , wherein the retrieving at least the minimum number of root directory slices comprises:

accessing root metadata associated with the root directory, wherein the root metadata includes information regarding DSN addressing of at least the minimum number of root directory slices.

4. The method of claim 1 further comprises:

determining a vault in which the data is stored based on a data source identifier of the data that includes a data source root identifier of the vault, wherein the data source identifier for the root directory is fixed within the vault; and

identifying DSN addressing of at least the minimum number of root directory slices based on the data source root directory.

5. The method of claim 1 , wherein the identifying the one or more intervening directories comprises:

accessing directory metadata associated with the one or more intervening directories, wherein the directory metadata includes DSN addressing information regarding the one or more intervening directories.

6. The method of claim 1 , wherein the identifying the one or more intervening directories comprises:

determining whether the one or more intervening directories is stored in cache memory of the computer;

when the one or more intervening directories is not stored in the cache memory, loading the one or more intervening directories into the cache memory; and

when the one or more intervening directories is stored in the cache memory, accessing the one or more intervening directories from the cache memory.

7. A computer comprising:

a network port adaptively coupled to a network in communication with slice servers of a distributed storage network (DSN); and

a client program operating on said computer, said client program adapted to:

receive, via the network port, a read request to read data;

retrieve, in response to the read request and via the network port, at least a minimum number of root directory slices from the DSN, wherein a root directory was encoded using an information dispersal algorithm to produce a plurality of root directory slices that is stored in the DSN and wherein the minimum number of root directory slices is less than the plurality of root directory slices;

apply the information dispersal algorithm on at least the minimum number of root directory slices to reconstruct a root directory;

identify one or more intervening directories including a home directory of the data from the reconstructed root directory based on the read request;

retrieve, via the network port, a minimum number of intervening directory slices from the DSN, wherein the one or more intervening directories was encoded using the information dispersal algorithm to produce a plurality of intervening directory slices that is stored in the DSN and wherein the minimum number of intervening directory slices is less than the plurality of intervening directory slices;

apply the information dispersal algorithm on the minimum number of intervening directory slices to reconstruct the intervening directory;

identify file object metadata from the home directory, wherein the file object metadata identifies data slices and wherein the data is encoded using an information dispersal algorithm to produce the data slices;

issue, via the network port, commands to retrieve at least a minimum number of data slices to reconstruct the data; and

when at least the minimum number of data slices have been received, applying the information dispersal algorithm on at least the minimum number of data slices to reconstruct the data.

8. The computer of claim 7 wherein the client program is further adapted to:

prior to retrieving at least the minimum number of root directory slices, determining whether the root directory is stored in cache memory of the computer; and

when the root directory is stored in the cache memory, accessing the root directory from the cache memory.

9. The computer of claim 7 wherein the client program is further adapted to:

access root metadata associated with the root directory, wherein the root metadata includes information regarding DSN addressing of the at least a minimum number of root directory slices.

10. The computer of claim 7 wherein the client program is further adapted to:

determine a vault in which the data of the file is stored based on a data source identifier of the data that includes a data source root identifier of the vault; and

identify DSN addressing of the at least a minimum number of root directory slices based on the data source root directory.

11. The computer of claim 7 wherein the client program is further adapted to:

access directory metadata associated with the one or more intervening directories, wherein the directory metadata includes information regarding the one or more intervening directories.

12. The computer of claim 7 wherein the client program is further adapted to identify the intervening directory by:

determining whether the one or more intervening directories is stored in cache memory of the computer;

when the one or more intervening directories is not stored in the cache memory, loading the one or more intervening directories into the cache memory; and

when the one or more intervening directories is stored in the cache memory, accessing the one or more intervening directories from the cache memory.

Assignments (5)
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 May 7, 2010
From: YOUNG, JESSE LOUIS
To: CLEVERSAFE, INC.
Reel/Frame 024349/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2010
From: PALTHEPU, SRINIVAS; THORNTON, VANCE T.; QUIGLEY, JOHN; BAPTIST, ANDREW; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 024253/0209 →