IP Library Granted Patent US 9,047,242
Granted Patent B2
US 9,047,242 · App. 13/080,431 · Granted Jun 2, 2015

Read operation dispersed storage network frame

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,047,242
App. No.
13/080,431
Granted
Jun 2, 2015
Kind
B2
Abstract

A method begins by a processing module generating a payload section of a dispersed storage network (DSN) frame regarding a read request operation by generating one or more slice name fields of the payload section to include one or more slice names corresponding to one or more encoded data slices and generating a transaction number field of the payload section to include a transaction number corresponding to the read request operation. The method continues with the processing module generating a protocol header of the DSN frame by generating a payload length field of the protocol header to include a payload length that represents a length of the payload section and generating remaining fields of the protocol header.

Claims (99)

1. A method for execution by one or more processing devices of one or more computing devices regarding a read request operation, the method comprises:

generating, by the one or more processing devices, a set of read requests regarding the read request operation for reading a dispersed storage error encoded data segment, wherein the dispersed error encoded data segment is stored in multiple storage units as a plurality of encoded data slices, wherein generating a read request of the set of read requests includes:

generating, by the one or more processing devices, a payload section of a dispersed storage network (DSN) frame by:

generating a slice name field of the payload section to include a slice name corresponding to one of the plurality of encoded data slices; and

generating a transaction number field of the payload section to include a transaction number corresponding to the read request operation; and

generating a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the payload section; and

generating remaining fields of the protocol header; and

determining a length of the transaction number;

determining a length for the slice name; and

generating the payload length for the payload length field based on the length of the transaction number, the length for the slice name, and the number of slice names of the one or more slices names; and

outputting, as the set of read requests, DSN frames to at least some of the multiple storage units.

2. The method of claim 1 further comprises:

outputting each of the DSN frames in order of the protocol header, the transaction number field, and the slice name field.

3. The method of claim 1 , wherein generating remaining fields of the protocol header comprises at least one of:

generating an operation code field to indicate the read request operation;

generating a protocol class field to indicate a protocol class for the read request operation; and

generating a protocol class version field for the read request operation.

4. The method of claim 1 further comprises:

generating the transaction number by:

obtaining a clock value;

multiplying the clock value by a predetermined multiplier to produce an expanded clock value; and

summing the expanded clock value and a random number to produce the value, wherein a number of digits of the random number is substantially the same as a number of digits of the predetermined multiplier.

5. The method of claim 1 , wherein at least one of the multiple storage units is accessible via a local area network or a wide area network.

6. The method of claim 1 further comprises:

generating, by the one or more processing devices, the set of read requests regarding the read request operation for reading a plurality of dispersed storage error encoded data segments, wherein the generating the read request of the set of read requests includes:

generating, by the one or more processing devices, the payload section of the DSN frame by:

generating a plurality of slice name fields of the payload section to include a plurality of slice names corresponding to an encoded data slice of each of the plurality of dispersed storage error encoded data segments.

7. A method for execution by one or more processing devices of one or more computing devices regarding a read response operation, the method comprises:

generating, by the one or more processing devices, a payload of a dispersed storage network (DSN) frame regarding one or more slice names of the read response operation to include one or more slice payload sections, wherein generating a slice payload section of the one or more slice payload sections of a slice name of the one or more slice names includes:

generating a slice revision count field to indicate a number of revisions of the slice name included in the slice payload section;

generating a slice revision numbering field for each of the revisions of the slice name to include a revision number;

generating a slice length field for each of the revisions of the slice name to include a length of a corresponding encoded data slice; and

generating a slice payload field for each of the revisions of the slice name to include the corresponding encoded data slice; and

generating a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the one or more slice payload sections; and

generating remaining fields of the protocol header.

8. The method of claim 7 further comprises:

outputting the DSN frame in order of the protocol header, and the one or more slice payload sections, wherein, within each slice payload section of the one or more slice payload sections, in an order of the slice revision count field, and for each of the revisions of the slice name, the slice revision numbering field, the slice length field, and the slice payload field.

9. The method of claim 7 , wherein generating remaining fields of the protocol header comprises at least one of:

generating an operation code field to indicate a read response operation;

generating a protocol class field to indicate a protocol class for the read response operation; and

generating a protocol class version field for the read response operation.

10. The method of claim 7 further comprises:

establishing an error condition based on one or more of: the one or more slice names being associated with a locked encoded data slice state, a transaction number error, the one or more slice names are associated with one or more encoded data slices that are not locally stored, and a read request message is not authorized; and

discarding the DSN frame when the error condition is established.

11. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

generate a set of read requests regarding the read request operation for reading a dispersed storage error encoded data segment, wherein the dispersed error encoded data segment is stored in multiple storage units as a plurality of encoded data slices, wherein generating a read request of the set of read requests includes:

generate a payload section of a dispersed storage network (DSN) frame by:

generating a slice name field of the payload section to include a slice name corresponding to one of the plurality of encoded data slices; and

generating a transaction number field of the payload section to include a transaction number corresponding to the read request operation; and

generate a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the payload section; and

generating remaining fields of the protocol header; and

determine a length of the transaction number;

determine a length for each of the one or more slices names;

determine a number of slice names of the slice name; and

generate the payload length for the payload length field based on the length of the transaction number, the length for the slice name

output, via the interface and as the set of read requests, DSN frames to at least some of the multiple storage units.

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

output, via the interface, the DSN frame in order of the protocol header, the transaction number field, and the slice name field.

13. The computer of claim 11 , wherein the processing module further functions to generate the remaining fields of the protocol header by at least one of:

generating an operation code field to indicate the read request operation;

generating a protocol class field to indicate a protocol class for the read request operation; and

generating a protocol class version field for the read request operation.

14. The computer of claim 11 , wherein the processing module further functions to:

generate the transaction number by:

obtaining a clock value;

multiplying the clock value by a predetermined multiplier to produce an expanded clock value; and

summing the expanded clock value and a random number to produce the value, wherein a number of digits of the random number is substantially the same as a number of digits of the predetermined multiplier.

15. The computer of claim 11 , wherein at least one of the multiple storage units is accessible via a local area network or a wide area network.

16. The computer of claim 11 , wherein the processing module further functions to:

generate the set of read requests regarding the read request operation for reading a plurality of dispersed storage error encoded data segments, wherein the generating the read request of the set of read requests includes:

generate the payload section of the DSN frame by:

generating a plurality of slice name fields of the payload section to include a plurality of slice names corresponding to an encoded data slice of each of the plurality of dispersed storage error encoded data segments.

17. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the memory, the processing module is operable to:

generate a payload of a dispersed storage network (DSN) frame regarding one or more slice names of a read response operation to include one or more slice payload sections, wherein generating a slice payload section of the one or more slice payload sections of a slice name of the one or more slice names includes:

generating a slice revision count field to indicate a number of revisions of the slice name included in the slice payload section;

generating a slice revision numbering field for each of the revisions of the slice name to include a revision number;

generating a slice length field for each of the revisions of the slice name to include a length of a corresponding encoded data slice; and

generating a slice payload field for each of the revisions of the slice name to include the corresponding encoded data slice; and

generate a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the one or more slice payload sections; and

generating remaining fields of the protocol header.

18. The computer of claim 17 , wherein the processing module further functions to:

output, via the interface, the DSN frame in order of the protocol header, and the one or more slice payload sections, wherein, within each slice payload section of the one or more slice payload sections, in an order of the slice revision count field, and for each of the revisions of the slice name, the slice revision numbering field, the slice length field, and the slice payload field.

19. The computer of claim 17 , wherein the processing module further functions to generate the remaining fields of the protocol header by at least one of:

generating an operation code field to indicate a read response operation;

generating a protocol class field to indicate a protocol class for the read response operation; and

generating a protocol class version field for the read response operation.

20. The computer of claim 17 , wherein the processing module further functions to:

establish an error condition based on one or more of: the one or more slice names being associated with a locked encoded data slice state, a transaction number error, the one or more slice names are associated with one or more encoded data slices that are not locally stored, and a read request message is not authorized; and

discard the DSN frame when the error condition is established.

Assignments (7)
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 Mar 26, 2015
From: MOTWANI, MANISH
To: CLEVERSAFE, INC.
Reel/Frame 035261/0643 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2011
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 026184/0670 →