IP Library Granted Patent US 9,749,419
Granted Patent B2
US 9,749,419 · App. 15/348,099 · Granted Aug 29, 2017

Check operation dispersed storage network frame

Inventors: Andrew Baptist (Mt. Pleasant, WI); Wesley Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Zachary J. Mark (Chicago, IL); Ilya Volvovski (Chicago, IL); Greg Dhuse (Chicago, IL)
Assignee: International Business Machines Corporation
H04L67/1097G06F3/064G06F3/065G06F3/067G06F3/0619G06F3/0644G06F11/1076G06F15/167H04L69/22H04L69/26
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,749,419
App. No.
15/348,099
Granted
Aug 29, 2017
Kind
B2
Abstract

A method includes sending a set of check request messages to a set of storage units. A first check request message of the set of check request messages includes a first group of slice names that includes a first slice name from each of a plurality of sets of slice names, and the plurality of sets of slices names corresponds to a plurality of sets of encoded data slices. The method further includes receiving, by a first storage unit, the first check request message, determining a first group of slice information, and sending first check response message, where the first check response message includes the first group of slice information. The method further includes interpreting the first check response message in light of the first group of slice names to identify one or more encoded data slices of the plurality of sets of encoded data slices in need of rebuilding.

Claims (83)

1. A method comprises:

sending, by a computing device of a dispersed storage network (DSN), a set of check request messages to a set of storage units of the DSN, wherein a first check request message of the set of check request messages includes a first group of slice names that includes a first slice name from each of a plurality of sets of slice names, wherein a plurality of data segments are dispersed storage error encoded into a plurality of sets of encoded data slices, and wherein the plurality of sets of slice names corresponds to the plurality of sets of encoded data slices;

receiving, by a first storage unit of the set of storage units, the first check request message;

determining, by the first storage unit, a first group of slice information in response to the first check request message;

sending, by the first storage unit, a first check response message to the computing device, wherein the first check response message includes the first group of slice information; and

interpreting, by the computing device, the first check response message in light of the first group of slice names to identify one or more encoded data slices of the plurality of sets of encoded data slices in need of rebuilding.

2. The method of claim 1 further comprises:

generating, by the computing device, the first check request message to include a header section and a payload section:

the payload section includes:

a plurality of slice name fields for containing the first group of slice names; and

a common transaction number field for containing a common transaction number corresponding to a check request operation; and

the protocol header includes one or more of:

a payload length field for containing a payload length that represents a length of the payload section;

an operation code field for containing an indicate the check request operation;

a protocol class field for containing a protocol class for the check request operation; and

a protocol class version field for containing the check request operation.

3. The method of claim 1 further comprises:

generating, by the first storage unit, the first check response message to include a header section and a payload section:

the payload section includes a plurality of slice information sections corresponding to the first group of slice information, wherein a first slice information section of the plurality of slice information sections corresponds to a first slice name of the first group of slice names and includes one or more of:

a slice revision count;

a slice revision numbering; and

a slice length; and

the protocol header includes one or more of:

a payload length field for containing a payload length that represents a length of the payload section;

an operation code field for containing an indicate the check request operation;

a protocol class field for containing a protocol class for the check request operation; and

a protocol class version field for containing the check request operation.

4. The method of claim 1 , wherein the interpreting the first check response message comprises:

for a first slice name of the first group of slice names, comparing a slice revision number of a first slice information section of a plurality of slice information sections of the first check response message with a known revision level;

when the comparing of the slice revision number compares unfavorably with the known revision level, identifying an encoded data slice associated with the first slice name is in need of rebuilding.

5. The method of claim 1 , wherein the interpreting the first check response message comprises:

for a first slice name of the first group of slice names, comparing a slice length of a first slice information section of a plurality of slice information sections of the first check response message with a known slice length; and

when the comparing of the slice length compares unfavorably with the known slice length, identifying an encoded data slice associated with the first slice name is in need of rebuilding.

6. The method of claim 1 further comprises:

receiving, by a second storage unit of the set of storage units, a second check request message;

determining, by the second storage unit, a second group of slice information in response to the second check request message;

sending, by the second storage unit, a second check response message to the computing device, wherein the second check response message includes the second group of slice information; and

interpreting, by the computing device, the second check response message in light of the second group of slice names to identify one or more other encoded data slices of the plurality of sets of encoded data slices in need of rebuilding.

7. A computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), cause the computing device to:

send a set of check request messages to a set of storage units of the DSN, wherein a first check request message of the set of check request messages includes a first group of slice names that includes a first slice name from each of a plurality of sets of slice names, wherein a plurality of data segments are dispersed storage error encoded into a plurality of sets of encoded data slices, and wherein the plurality of sets of slice names corresponds to the plurality of sets of encoded data slices;

a second memory element that stores operational instructions that, when executed by a first storage unit of the set of storage units, cause the first storage unit to:

receive the first check request message;

determine a first group of slice information in response to the first check request message;

send a first check response message to the computing device, wherein the first check response message includes the first group of slice information; and

a third memory element that stores operational instructions that, when executed by the computing device, cause the computing device to:

interpret the first check response message in light of the first group of slice names to identify one or more encoded data slices of the plurality of sets of encoded data slices in need of rebuilding.

8. The computer readable memory of claim 7 further comprises:

a fourth memory element that stores operational instructions that, when executed by the computing device, cause the computing device to:

generate the first check request message to include a header section and a payload section:

the payload section includes:

a plurality of slice name fields for containing the first group of slice names; and

a common transaction number field for containing a common transaction number corresponding to a check request operation; and

the protocol header includes one or more of:

a payload length field for containing a payload length that represents a length of the payload section;

an operation code field for containing an indicate the check request operation;

a protocol class field for containing a protocol class for the check request operation; and

a protocol class version field for containing the check request operation.

9. The computer readable memory of claim 7 further comprises:

a fifth memory element that stores operational instructions that, when executed by the first storage unit, cause the first storage unit to:

generate the first check response message to include a header section and a payload section:

the payload section includes a plurality of slice information sections corresponding to the first group of slice information, wherein a first slice information section of the plurality of slice information sections corresponds to a first slice name of the first group of slice names and includes one or more of:

a slice revision count;

a slice revision numbering; and

a slice length; and

the protocol header includes one or more of:

a payload length field for containing a payload length that represents a length of the payload section;

an operation code field for containing an indicate the check request operation;

a protocol class field for containing a protocol class for the check request operation; and

a protocol class version field for containing the check request operation.

10. The computer readable memory of claim 7 , wherein the third memory element stores further operational instructions that, when executed by the computing device, cause the computing device to interpret the first check response message by:

for a first slice name of the first group of slice names, compare a slice revision number of a first slice information section of a plurality of slice information sections of the first check response message with a known revision level;

when the comparing of the slice revision number compares unfavorably with the known revision level, identify an encoded data slice associated with the first slice name is in need of rebuilding.

11. The computer readable memory of claim 7 , wherein the third memory element stores further operational instructions that, when executed by the computing device, cause the computing device to interpret the first check response message by:

for a first slice name of the first group of slice names, compare a slice length of a first slice information section of a plurality of slice information sections of the first check response message with a known slice length; and

when the comparing of the slice length compares unfavorably with the known slice length, identify an encoded data slice associated with the first slice name is in need of rebuilding.

12. The computer readable memory of claim 7 further comprises:

a sixth memory element that stores operational instructions that, when executed by a second storage unit of the set of storage units, cause the second storage unit to:

receive a second check request message;

determine a second group of slice information in response to the second check request message;

send a second check response message to the computing device, wherein the second check response message includes the second group of slice information; and

a seventh memory element that stores operational instructions that, when executed by the computing device, cause the computing device to:

interpret the second check response message in light of the second group of slice names to identify one or more other encoded data slices of the plurality of sets of encoded data slices in need of rebuilding.

Assignments (6)
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 Mar 9, 2017
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.; MARK, ZACHARY J.; VOLVOVSKI, ILYA; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 041526/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041925/0735 →
Continuity (5)
Continuation 14176807 · Feb 10, 2014
Continuation 13080446 · Apr 5, 2011
Continuation 13073948 · Mar 28, 2011
Provisional Application 61328000 · Apr 26, 2010
Related Publication 20170063993A1 · Mar 2, 2017