IP Library Granted Patent US 9,578,097
Granted Patent B2
US 9,578,097 · App. 12/950,755 · Granted Feb 21, 2017

Block based 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 9,578,097
App. No.
12/950,755
Granted
Feb 21, 2017
Kind
B2
Abstract

A computer includes a data transform algorithm, a data dispersal algorithm, and a network port. The data transform algorithm performs a data transformation on a data block to produce a transformed data block. The data dispersal algorithm performs a data dispersal function on the transformed data block to produce a plurality of data slices, wherein each of the plurality of data slices includes less than all data contained in the transformed data block. The network port is operable to transmit a plurality of write commands to a plurality of slice servers, wherein each of the plurality of write commands includes a corresponding one of the plurality of data slices. The network port is further operable to receive verification of storage of at least some of the plurality of data slices from at least some of the plurality of slice servers.

Claims (20)

1. A method of writing data to a dispersed data network, said method operating on at least one computer and comprising the steps of:

dividing a data segment of data into a plurality of data blocks, wherein data blocks of the plurality of data blocks have a fixed block size;

performing a data transformation on the plurality of data blocks to produce a plurality of transformed data blocks, wherein the data transformation includes calculating checksums for the plurality of data blocks and further includes one or more of encrypting the plurality of data blocks and compressing the plurality of data blocks;

performing a data dispersal algorithm on the plurality of transformed data blocks to produce a plurality of “n” number of data slices, wherein one of the plurality of blocks of data is encoded into one of the plurality of “n” number of data slices, and wherein data slices of the plurality of “n” number of data slices are grouped to produce “n” number of data slice groups;

transmitting write commands for at least “m” number of data slice groups to at least “m” number of slice servers of a plurality of slice servers, wherein “m” is less than “n” and represents a minimum number of data slices to recover the one of the plurality of blocks of data from the one of the plurality of “n” number of data slices; and

receiving verification of storage of the at least “m” number of data slice groups from the at least “m” number of slice servers.

2. The method of claim 1 further comprises:

performing a second data transformation on at least one of the plurality of data slices prior to transmitting the write commands.

3. The method of claim 1 , wherein the data dispersal algorithm comprises an information dispersal algorithm and wherein the at least “m” number of data slice groups is greater than “m” but less than “n”.

4. A computer comprises:

a network port;

memory; and

a processor operably coupled to the network port and to the memory, the processor is operable to:

divide a data segment of data into a plurality of data blocks, wherein data blocks of the plurality of data blocks have a fixed block size;

perform a data dispersal algorithm on a plurality of transformed data blocks to produce a plurality of “n” number of data slices, wherein one of the plurality of blocks of data is encoded into one of the plurality of “n” number of data slices, and wherein data slices of the plurality of “n” number of data slices are grouped to produce “n” number of data slice groups;

transmit, via the network port, write commands for at least “m” number of data slice groups to at least “m” number of slice servers of a plurality of slice servers, wherein “m” is less than “n” and represents a minimum number of data slices to recover the one of the plurality of blocks of data from the one of the plurality of “n” number of data slices; and

receive, via the network port, verification of storage of the at least “m” number of data slice groups from the at least “m” number of slice servers.

5. The computer of claim 4 further comprises:

a second data transform algorithm for performing a data transformation on at least one of the plurality of data slices prior to transmitting the write commands.

6. The computer of claim 4 , wherein the data dispersal algorithm comprises an information dispersal algorithm and wherein the at least “m” number of data slice groups is greater than “m” but less than “n”.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →