IP Library Granted Patent US 10,055,291
Granted Patent B2
US 10,055,291 · App. 15/191,146 · Granted Aug 21, 2018

Method and system for processing data access requests during data transfers

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Ravi V. Khadiwala (Bartlett, IL); Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/1076H04L67/00G06F2211/1028
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 10,055,291
App. No.
15/191,146
Granted
Aug 21, 2018
Kind
B2
Abstract

A method for execution by a storage unit of a dispersed storage network, the method comprises transitioning storage of one or more groups of encoded data slices from storage based on a previous version of a distributed agreement protocol to storage based on a new version of the distributed agreement protocol. While transitioning storage of the one or more groups of encoded data slices, receiving, from a requesting computing device, a data access request regarding an encoded data slice of the one or more groups of encoded data slices. Determining whether the encoded data slice has been transferred as a result of the transitioning. When the storage unit is currently storing the encoded data slice, processing the data access request. When the storage unit is not currently storing the encoded data slice, functioning as a proxy for the requesting computing device to fulfill the data access request.

Claims (66)

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

transitioning storage of one or more groups of encoded data slices from storage based on a previous version of a distributed agreement protocol to storage based on a new version of the distributed agreement protocol, wherein the transitioning includes executing the new version of the distributed agreement protocol to identify the one or more groups of encoded data slices, wherein the distributed agreement protocol includes: a plurality of functions operable to generate a plurality of scoring values based on a plurality of storage unit identifiers, a plurality of corresponding storage unit weights, and one or more asset identifiers corresponding to the one or more groups of encoded data slices; and a ranking function that processes the plurality of scoring values to identify at least one another storage unit to which one or more encoded data slices of the one or more groups of encoded data slices are to be transferred; and

while transitioning storage of the one or more groups of encoded data slices:

receiving, from a requesting computing device, a data access request regarding an encoded data slice of the one or more groups of encoded data slices;

determining whether the encoded data slice has been transferred as a result of the transitioning;

when the storage unit is currently storing the encoded data slice, processing the data access request; and

when the storage unit is not currently storing the encoded data slice, functioning as a proxy for the requesting computing device to fulfill the data access request.

2. The method of claim 1 further comprises:

receiving the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit; and

processing the data access request.

3. The method of claim 1 further comprises:

receiving the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by another storage unit;

forwarding, by the storage unit, the data access request to the other storage unit;

receiving, by the storage unit, an access response from the other storage unit; and

sending, by the storage unit, the access response to the requesting computing device.

4. The method of claim 1 further comprises:

receiving, from the requesting computing device via another storage unit, the data access request, wherein the data access request is based on the new version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit, and wherein the other computing device is functioning as a proxy for the storage unit;

processing the data access request to produce a data access response; and

sending the data access response to the other storage unit.

5. The method of claim 1 , wherein a group of the one or more groups of encoded data slices is based on a range of slice names regarding a plurality of sets of encoded data slices.

6. A storage unit comprises:

an interface;

a memory; and

a processing module operable to:

transition storage of one or more groups of encoded data slices from storage based on a previous version of a distributed agreement protocol to storage based on a new version of the distributed agreement protocol; and

while transitioning storage of the one or more groups of encoded data slices:

receive, from a requesting computing device, a data access request regarding an encoded data slice of the one or more groups of encoded data slices;

determining whether the encoded data slice has been transferred as a result of the transitioning;

when the storage unit is currently storing the encoded data slice, process the data access request; and

when the storage unit is not currently storing the encoded data slice, function as a proxy for the requesting computing device to fulfill the data access request, wherein the function as a proxy includes receiving the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by another storage unit, forwarding, by the storage unit, the data access request to the other storage unit, receiving, by the storage unit, an access response from the other storage unit, wherein the access response includes the encoded data slice, and sending, by the storage unit, the access response to the requesting computing device.

7. The storage unit of claim 6 , wherein the processing module further functions to:

receive the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit; and

process the data access request.

8. The storage unit of claim 6 , wherein the processing module further functions to:

receive, from the requesting computing device via another storage unit, the data access request, wherein the data access request is based on the new version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit, and wherein the other computing device is functioning as a proxy for the storage unit;

process the data access request to produce a data access response; and

send the data access response to the other storage unit.

9. The storage unit of claim 6 , wherein the processing module further functions to transition storage of the one or more groups of encoded data slices by:

executing the new version of the distributed agreement protocol to identify the one or more groups of encoded data slices, wherein the distributed agreement protocol includes:

a plurality of functions operable to generate a plurality of scoring values based on a plurality of storage unit identifiers, a plurality of corresponding storage unit weights, and one or more asset identifiers corresponding to the one or more groups of encoded data slices; and

a ranking function that processes the plurality of scoring values to identify at least one another storage unit to which one or more encoded data slices of the one or more groups of encoded data slices are to be transferred.

10. The storage unit of claim 6 , wherein a group of the one or more groups of encoded data slices is based on a range of slice names regarding a plurality of sets of encoded data slices.

11. A computer readable memory device comprises:

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

transition storage of one or more groups of encoded data slices from storage based on a previous version of a distributed agreement protocol to storage based on a new version of the distributed agreement protocol; and

a second memory element that stores operational instructions that, when executed by a storage unit, causes the storage unit to:

execute the new version of the distributed agreement protocol to identify the one or more groups of encoded data slices, wherein the distributed agreement protocol includes:

a plurality of functions operable to generate a plurality of scoring values based on a plurality of storage unit identifiers, a plurality of corresponding storage unit weights, and one or more asset identifiers corresponding to the one or more groups of encoded data slices; and

a ranking function that processes the plurality of scoring values to identify at least one another storage unit to which one or more encoded data slices of the one or more groups of encoded data slices are to be transferred; and

while transitioning storage of the one or more groups of encoded data slices:

receive, from a requesting computing device, a data access request regarding an encoded data slice of the one or more groups of encoded data slices;

determine whether the encoded data slice has been transferred as a result of the transitioning;

when the storage unit is currently storing the encoded data slice, process the data access request; and

when the storage unit is not currently storing the encoded data slice, function as a proxy for the requesting computing device to fulfill the data access request.

12. The computer readable memory device of claim 11 further comprises:

receiving the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit; and

processing the data access request.

13. The computer readable memory device of claim 11 further comprises:

receiving the data access request based on the previous version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by another storage unit;

forwarding, by the storage unit, the data access request to the other storage unit;

receiving, by the storage unit, an access response from the other storage unit; and

sending, by the storage unit, the access response to the requesting computing device.

14. The computer readable memory device of claim 11 further comprises:

receiving, from the requesting computing device via another storage unit, the data access request, wherein the data access request is based on the new version of the distributed agreement protocol, wherein the encoded data slice is of a first group of encoded data slices and wherein the first group of encoded data slices is stored by the storage unit, and wherein the other computing device is functioning as a proxy for the storage unit;

processing the data access request to produce a data access response; and

sending the data access response to the other storage unit.

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 Jun 23, 2016
From: BAPTIST, ANDREW D.; KHADIWALA, RAVI V.; MOTWANI, MANISH; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038999/0198 →
Continuity (2)
Provisional Application 62186590 · Jun 30, 2015
Related Publication 20170004043A1 · Jan 5, 2017