IP Library Granted Patent US 12,086,031
Granted Patent B2
US 12,086,031 · App. 18/216,015 · Granted Sep 10, 2024

Check requests in a storage network

Inventors: Andrew Baptist (Mt. Pleasant, WI); Wesley Leggette (Chicago, IL); Jason K. Resch (Warwick, RI); Zachary J. Mark (Chicago, IL); Ilya Volvovski (Chicago, IL); Greg Dhuse (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/0619G06F3/064G06F3/0659G06F3/067H04L67/1097H04L69/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 12,086,031
App. No.
18/216,015
Granted
Sep 10, 2024
Kind
B2
Abstract

A method includes receiving, by a storage unit of a storage network, a check request message from a computing device of the storage network, where the check request message includes a group of slice names of a plurality of sets of slice names associated with a plurality of sets of encoded data slices, where a plurality of data segments are dispersed storage error encoded into the plurality of sets of encoded data slices. The method further includes determining, by the storage unit, whether an error condition exists for an encoded data slice associated with the group of slice names. When no, the method includes sending, by the storage unit, a check response message to the computing device, where the check response message includes a group of slice information regarding the group of slice names. When yes, the method includes disregarding sending the check response message.

Claims (43)

1. A method comprises:

receiving, by a storage unit of a set of storage units of a storage network, a check request message from a computing device of the storage network, wherein the check request message includes a group of slice names that includes a 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;

determining, by the storage unit, whether an error condition exists for one or more encoded data slices associated with the group of slice names, wherein the error condition includes one or more slice names of the group of slice names being associated with the one or more encoded data slices that are not stored in the storage unit;

when the error condition does not exist:

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

when the error condition does exist:

disregarding sending the check response message.

2. The method of claim 1 , wherein the error condition comprises one or more slice names of the group of slice names being associated with a locked encoded data slice.

3. The method of claim 1 , wherein the error condition comprises a transaction number error.

4. The method of claim 1 , wherein the error condition comprises the check request message not being authorized.

5. The method of claim 1 further comprises:

sending, by the computing device, the check request message to the storage unit.

6. The method of claim 5 further comprises:

generating, by the computing device, a payload section of the check request message, wherein the payload section includes the group of slice names.

7. The method of claim 6 , wherein the computing device determines the group of slice names based on information received in a rebuilder message.

8. The method of claim 6 , wherein the computing device determines the group of slice names based on a previous check request.

9. The method of claim 6 , wherein the computing device determines the group of slice names based on a list.

10. The method of claim 6 , wherein the computing device determines the group of slice names based on a predetermination.

11. The method of claim 6 , wherein the computing device determines the group of slice names based on a check command.

12. The method of claim 6 , wherein the computing device determines the group of slice names based on an error message.

13. The method of claim 6 , wherein the computing device determines the group of slice names based on a table look up.

14. The method of claim 1 further comprises:

generating, by the storage unit, the 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 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 group of slice names and includes one or more of:

a slice revision count;

a slice revision numbering; and

a slice length; and

the header section 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 message;

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

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

15. A computer readable memory comprises:

at least one memory element that stores operational instructions that, when executed by a storage unit of a storage network, cause the storage unit to:

receive, from a computing device of the storage network, a check request message, wherein the check request message includes a group of slice names that includes a 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;

determine whether an error condition exists for an encoded data slice associated with the group of slice names, wherein the error condition includes a slice name of the group of slice names being associated with the encoded data slice that is not stored in the storage unit;

when the error condition does not exist:

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

when the error condition does exist:

disregard sending the check response message.

16. The computer readable memory of claim 15 , wherein the at least one memory element stores further operational instructions that, when executed by the storage unit, cause the storage unit to determine the error condition based on one or more slice names of the group of slice names being associated with a locked encoded data slice.

17. The computer readable memory of claim 15 , wherein the at least one memory element stores further operational instructions that, when executed by the storage unit, cause the storage unit to determine the error condition based on a transaction number error.

18. The computer readable memory of claim 15 , wherein the at least one memory element stores further operational instructions that, when executed by the storage unit, cause the storage unit to determine the error condition based on the check request message not being authorized.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2023
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 064239/0707 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2023
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064227/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.; MARK, ZACHARY J.; VOLVOVSKI, ILYA; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 064161/0794 →
Continuity (9)
Continuation 17301783 · Apr 14, 2021
Continuation 16692472 · Nov 22, 2019
Continuation 16138753 · Sep 21, 2018
Continuation 15345309 · Nov 7, 2016
Continuation 14454942 · Aug 8, 2014
Continuation In Part 13080431 · Apr 5, 2011
Continuation 13073948 · Mar 28, 2011
Provisional Application 61328000 · Apr 26, 2010
Related Publication 20230342249A1 · Oct 26, 2023