IP Library Granted Patent US 8,171,101
Granted Patent B2
US 8,171,101 · App. 11/973,622 · Granted May 1, 2012

Smart access to 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,171,101
App. No.
11/973,622
Granted
May 1, 2012
Kind
B2
Abstract

An improved system for accessing data within a distributed data storage network (“DDSN”) is disclosed. In a system implementing the disclosed invention, traffic is routed to individual slice servers within the DDSN in accordance with objective criteria as well as user-defined policies. In accordance with one aspect of the disclosed invention, when a data segment is written to a DDSN, the segment is divided into multiple data slices, which are simultaneously transmitted to different slice servers. In accordance with another aspect of the disclosed invention, when a data segment is read from a DDSN, a list of slice servers, each containing a data slice that could be used to reconstruct the requested data segment, is assembled, and sorted in accordance with a preference rating assigned to each of the slice servers. Sufficient data slices to reconstruct the data segment are then read in accordance with the preference ranking of the slice servers.

Claims (44)

1. A method of reading data, said method operating on at least one computer and comprising the steps of:

receiving a read request for a data segment stored on a dispersed data storage network;

determining a virtual digital data storage vault to store the data segment based on the read request;

determining a vault data structure corresponding to the virtual digital data storage vault;

authenticating the read request in accordance with the vault data structure;

when the read request is authenticated, assembling a list of slice servers based on the virtual digital data storage vault, wherein each slice server on said list stores at least one data slice associated with said data segment, wherein the data segment was encoded into a plurality of data slices based on an information dispersal algorithm;

assigning a preference rating to each of said slice servers contained on said list based on at least one of a slice server's most recent response time, historical response time, and present load; and

retrieving, based on said preference rating, a number of data slices required by the information dispersal algorithm to assemble said data segment, wherein the number of data slices is less than the plurality of data slices.

2. The method of claim 1 , further comprising the step of sorting said list according to said preference rating.

3. The method of claim 1 , wherein said assigning step utilizes at least a slice server's most recent response time.

4. The method of claim 1 , wherein the step of assembling is accomplished in accordance with at least one user-defined policy.

5. A method of writing data, said method operating on at least one computer and comprising the steps of:

receiving a write request to write a data segment to said dispersed data storage network;

determining a virtual digital data storage vault that is storing the data segment based on the write request;

determining a vault data structure corresponding to the virtual digital data storage vault;

authenticating the write request in accordance with the vault data structure;

when the write request is authenticated, accessing dispersal parameters of an information dispersal algorithm including a slice count indicative of a number of data slices said data segment will be divided into, and a redundancy count indicative of the number of data slices that can be lost without compromising the ability to reconstruct said data segment from said dispersed data storage network;

performing the information dispersal algorithm on said data segment to produce a plurality of data slices equal to said slice count;

transmitting said plurality of data slices to a plurality of slice servers that provide the virtual digital data storage vault so that each data slice is transmitted to a separate slice server; and

monitoring that at least a number of data slices are successfully stored, wherein the number corresponds to the slice count less the redundancy count.

6. The method of claim 5 , wherein said monitoring step requires that all of said plurality of data slices are successfully stored.

7. A computer comprising:

a network port coupled to a data network;

a central processing unit operable to process a read request by: receiving the read request regarding a data segment stored on a dispersed data storage network;

determining a virtual digital data storage vault to store the data segment based on the read request;

determining a vault data structure corresponding to the virtual digital data storage vault;

authenticating the read request in accordance with the vault data structure;

when the read request is authenticated, assembling a list of slice servers based on the virtual digital data storage vault, wherein each slice server on said list stores at least one data slice associated with a data segment, wherein the data segment was encoded into a plurality of data slices based on an information dispersal algorithm;

assigning a preference rating to each of said slice servers on said list based on at least one of a slice server's most recent response time, historical response time, and present load; and

retrieving, based on said preference rating and via the network port, a number of data slices required by the information dispersal algorithm to assemble said data segment, wherein the number of data slices is less than the plurality of data slices.

8. The computer of claim 7 , wherein the central processing unit further functions to sort said list in accordance with said preference rating.

9. The computer of claim 7 , wherein the central processing unit further functions to assign a preference rating to each of said slice servers on said list utilizing at least each of said slice servers' most recent ping time.

10. The computer of claim 7 , wherein the central processing unit further functions to assemble a list of said slice servers having access to at least one data slice associated with said data segment in accordance with at least one user-defined policy.

11. A computer comprising:

a network port coupled to a data network;

a central processing unit for processing a write request of a data segment by:

receiving the write request to write a data segment to a dispersed data storage network;

determining a virtual digital data storage vault that is storing the data segment based on the write request;

determining a vault data structure corresponding to the virtual digital data storage vault;

authenticating the write request in accordance with the vault data structure;

when the write request is authenticated, performing an information dispersal algorithm on said data segment to produce a plurality of data slices equal to a slice count, wherein dispersal parameters of the information dispersal algorithm include the slice count and a redundancy count indicative of a number of data slices that can be lost without compromising the ability to reconstruct said data segment from said dispersed data storage network;

transmitting, via the network port, said plurality of data slices to a plurality of slice servers that provide the virtual digital storage vault so that each data slice is transmitted to a separate slice server, and

monitoring said plurality of slice servers so that at least a number of data slices are successfully stored, wherein the number corresponds to the slice count less the redundancy count.

12. The computer of claim 11 , wherein the central processing unit further functions to monitor said plurality of slice servers so that all of said data slices are successfully stored.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2013
From: SILICON VALLEY BANK
To: CLEVERSAFE, INC.
Reel/Frame 031058/0255 →
FIRST AMENDMENT TO IPSA Recorded Dec 31, 2012
From: CLEVERSAFE, INC.
To: SILICON VALLEY BANK
Reel/Frame 029555/0356 →
CHANGE OF NAME Recorded Mar 1, 2010
From: CLEVERSAFE LLC
To: CLEVERSAFE, INC.
Reel/Frame 024009/0386 →
RE-RECORD TO REPLACE UNSIGNED ASSIGNMENT PAGES. DOCUMENT PREVIOUSLY RECORDED AT REEL 020009 FRAME 0697. Recorded Oct 9, 2007
From: GLADWIN, S. CHRISTOPHER; DHUSE, GREG; THORNTON, VANCE; VOLVOVSKI, ILYA
To: CLEVERSAFE, LLC
Reel/Frame 020190/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2007
From: GLADWIN, S. CHRISTOPHER; DHUSE, GREG; THORNTON, VANCE; VOLVOVSKI, ILYA
To: CLEVERSAFE, LLC
Reel/Frame 020009/0697 →