IP Library Granted Patent US 11,818,089
Granted Patent B1
US 11,818,089 · App. 17/184,193 · Granted Nov 14, 2023

Processing requests for a data range within a data object in a distributed storage system

Inventors: Wesley B. Leggette (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL); Manish Motwani (Chicago, IL); S. Christopher Gladwin (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Thomas F. Shirley, Jr. (Wauwatosa, WI)
H04L51/42G06F9/4881G06F9/5083
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 11,818,089
App. No.
17/184,193
Granted
Nov 14, 2023
Kind
B1
Abstract

A method for execution in a storage network includes receiving a request pertaining to a data object, where the request is related to a specified contiguous data range within the data object and the data object is dispersed error encoded to produce a plurality of groups of encoded data slices. The method continues by converting the request into a plurality of partial requests, where each partial request of the plurality of partial requests includes at least one partial task and transmitting each partial request of the plurality of partial requests to a storage unit of a set of storage units. The method then continues by determining when a partial request response has been received for each partial request of the plurality of partial requests and when a partial request response has been received for each partial request of the plurality of partial requests, transmitting an indication that the request pertaining to the data object has been successfully executed.

Claims (38)

1. A method for execution by a storage network, the method comprises:

receiving a request pertaining to a data object, wherein the request is related to a specified contiguous data range within the data object, wherein the data object is dispersed error encoded to produce a plurality of groups of encoded data slices;

based on the specified contiguous data range, converting the request into a plurality of partial requests, wherein each partial request of the plurality of partial requests includes at least one partial task;

transmitting each partial request of the plurality of partial requests to a storage unit of a set of storage units;

determining when a partial request response has been received for each partial request of the plurality of partial requests; and

when a partial request response has been received for each partial request of the plurality of partial requests, transmitting an indication that the request pertaining to the data object has been successfully executed.

2. The method of claim 1 , wherein each partial request of the plurality of partial requests includes a group of encoded data slices of a plurality of groups of encoded data slices, wherein each group of encoded data slices of a plurality of groups is associated with a portion of the specified contiguous data range.

3. The method of claim 1 , wherein the request pertaining to the data object includes retrieving data in the specified contiguous data range.

4. The method of claim 1 , wherein the request pertaining to the data object includes a write request for the specified contiguous data range.

5. The method of claim 1 , wherein the partial request response includes one or more encoded data slices.

6. The method of claim 1 , wherein at least two partial requests of the plurality of partial requests are transmitted to a same storage unit of the set of storage units.

7. The method of claim 1 , further comprising:

determining a number of encoded data slices of the group of encoded data slices required to execute the request.

8. The method of claim 1 , wherein the request pertaining to the data object includes adding an encoded data slice associated with the specified contiguous data range.

9. The method of claim 1 , wherein the request pertaining to the data object includes replacing the specified contiguous data range in the data object.

10. A computing device comprising:

an interface configured to interface and communicate with a distributed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

receive a request pertaining to a data object, wherein the request is related to a specified contiguous data range within the data object, wherein the data object is dispersed error encoded to produce a plurality of groups of encoded data slices;

based on the specified contiguous data range, convert the request into a plurality of partial requests, wherein each partial request of the plurality of partial requests includes at least one partial task;

transmit each partial request of the plurality of partial requests to a storage unit of a set of storage units;

determine when a partial request response has been received for each partial request of the plurality of partial requests; and

when a partial request response has been received for each partial request of the plurality of partial requests, transmit an indication that the request pertaining to the data object has been successfully executed.

11. The computing device of claim 10 , wherein each partial request of the plurality of partial requests includes a group of encoded data slices of a plurality of groups of encoded data slices, wherein each group of encoded data slices of a plurality of groups is associated with a portion of the specified contiguous data range.

12. The computing device of claim 10 , wherein the request pertaining to the data object includes retrieving data in the specified contiguous data range.

13. The computing device of claim 10 , wherein the request pertaining to the data object includes a write request for the specified contiguous data range.

14. The computing device of claim 10 , wherein the partial request response includes one or more encoded data slices.

15. The computing device of claim 10 , wherein at least two partial requests of the plurality of partial requests are transmitted to a same storage unit of the set of storage units.

16. The computing device of claim 10 , wherein the computing device based on the operational instructions, is further configured to:

determine a number of encoded data slices of the group of encoded data slices required to execute the request.

17. A method for execution by a storage unit of a distributed storage network (DSN), the method comprises:

receiving a partial request of a plurality of partial requests, wherein the plurality of partial requests are converted from a request pertaining to a data object, wherein the request is related to a specified contiguous data range within the data object, wherein the partial request includes a partial task pertaining to a group of encoded data slices stored in the storage unit;

executing the partial request to produce a partial result;

generating a partial task response that includes a partial result status indicator based on the partial result.

18. The method of claim 17 , wherein the request pertaining to the data object includes retrieving data in the specified contiguous data range.

19. The method of claim 17 , wherein the request pertaining to the data object includes a write request for the specified contiguous data range.

20. The method of claim 17 , wherein the request pertaining to the data object includes adding an encoded data slice associated with the specified contiguous data range.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2021
From: LEGGETTE, WESLEY B.; BAPTIST, ANDREW D.; DHUSE, GREG R.; RESCH, JASON K.; VOLVOVSKI, ILYA; MOTWANI, MANISH; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; SHIRLEY, THOMAS F., JR.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055407/0341 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 055407/0729 →
Continuity (6)
Continuation 16861559 · Apr 29, 2020
Continuation 16407894 · May 9, 2019
Continuation In Part 15341722 · Nov 2, 2016
Continuation In Part 13865641 · Apr 18, 2013
Continuation In Part 13707490 · Dec 6, 2012
Provisional Application 61569387 · Dec 12, 2011