IP Library Granted Patent US 10,795,766
Granted Patent B2
US 10,795,766 · App. 16/045,850 · Granted Oct 6, 2020

Mapping slice groupings in a dispersed storage network

Inventor: Greg R. Dhuse (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/067G06F3/0611G06F3/0619G06F3/0635H04L9/0861H04L9/0894H04L63/0428H04L63/06H04L67/1097H04L9/0822H04L63/0435H04L2209/34H04L2463/061H04W12/04
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,795,766
App. No.
16/045,850
Granted
Oct 6, 2020
Kind
B2
Abstract

A method for a distributed storage network (DSN) includes retrieving a slice of a chunk for execution of a partial task, identifying a record configuration of the slice, facilitating processing of a partial task on at least one record of the slice, and when the slice includes a partial record, identifying a slice location of another slice that includes a remaining partial record corresponding to the partial record, and when the slice location is favorable, retrieving the other slice from the slice location, and facilitating processing of the partial task on at least one record of the other slice.

Claims (49)

1. A method for processing distributedly stored data by a computing device, the method comprises:

retrieving from distributed storage a slice of a chunk for execution of a partial task;

identifying a record configuration of the slice;

facilitating processing of a partial task on at least one record of the slice;

determining whether the slice includes a partial record based on the record configuration of the slice; and

when the slice includes a partial record, identifying a slice location of another slice that includes a remaining partial record corresponding to the partial record; and

determining whether the slice location is favorable; and

when the slice location is favorable, retrieving from the distributed storage the other slice from the slice location; and

facilitating processing of the partial task on at least one record of the other slice.

2. The method of claim 1 further comprises, when the slice does not include a partial record, performing the retrieving a slice of a chunk for execution of a partial task execution to retrieve a next slice.

3. The method of claim 1 further comprises, when the slice location is unfavorable, performing the retrieving a slice of a chunk for execution of a partial task execution to retrieve a next slice.

4. The method of claim 1 , wherein the slice includes a next slice for execution of the partial task.

5. The method of claim 1 , wherein the identifying a record configuration of the slice includes mapping of the slice to at least one record.

6. The method of claim 1 , wherein the identifying a record configuration of the slice includes

retrieving a mapping record, receiving the mapping record, and extracting mapping from the slice.

7. The method of claim 6 , wherein the extracting mapping from the slice includes searching for a record identifier.

8. The method of claim 1 , wherein the facilitating processing of a partial task on at least one record of the slice includes one or more of: retrieving the partial task associated with the slice, queuing the slice for processing in accordance with the record configuration of the slice, or immediately executing the partial task.

9. The method of claim 1 , wherein the slice location includes at least one of: a next slice of the chunk when the slice is not a last slice of the chunk, a different chunk when the slice is the last slice of the chunk, another storage unit memory when a chunk map indicates that the chunk is assigned to another storage unit memory, or another site when the chunk map indicates that the chunk is assigned to a storage unit memory at the other site.

10. The method of claim 1 , wherein the determining whether the slice location is favorable is based on one or more of: the slice location, network performance, a predetermination, an estimated amount of time to retrieve the slice, or an estimated amount of time until processing begins on the slice.

11. The method of claim 1 , wherein the determining whether the slice location is favorable includes the slice location being favorable when the slice is at a same site.

12. The method of claim 1 , wherein the determining whether the slice location is favorable includes the slice is stored at another site and there is enough time to retrieve the slice before processing of an associated partial task should begin.

13. The method of claim 1 , wherein the other slice from the slice location includes any of: another slice of the chunk, another slice of another chunk from a common storage unit memory, another slice of another chunk from another storage unit memory or a common site.

14. The method of claim 1 , wherein the facilitating processing of the partial task on at least one record of the other slice includes at least one of: queuing the slice for processing after other records of the slice in accordance with the record configuration of the slice or immediately processing the partial task on the at least one record.

15. A computing device of a group of computing devices of a distributed storage network (DSN), the computing device comprises:

a network interface;

a local memory; and

a processing module operably coupled to the local memory and the network interface, the processing module configured to:

retrieve from distributed storage a slice of a chunk for execution of a partial task;

identify a record configuration of the slice;

facilitate processing of a partial task on at least one record of the slice;

determine whether the slice includes a partial record based on the record configuration of the slice; and

when the processing module determines that the slice does include a partial record, identify a slice location of another slice that includes a remaining partial record corresponding to the partial record;

determine whether the slice location is favorable; and

when the processing module determines that the slice location is favorable, retrieve from the distributed storage the other slice from the slice location; and

facilitate processing of the partial task on at least one record of the other slice.

16. The computing device of claim 15 further comprises, when the processing module determines that the slice does not include a partial record, performing the retrieving a slice of a chunk for execution of a partial task execution to retrieve a next slice; or when the processing module determines that the slice location is unfavorable, performing the retrieving a slice of a chunk for execution of a partial task execution to retrieve a next slice.

17. The computing device of claim 15 , wherein the facilitate processing of a partial task on at least one record of the slice includes one or more of: retrieving the partial task associated with the slice, queuing the slice for processing in accordance with the record configuration of the slice, or immediately executing the partial task.

18. The computing device of claim 15 , wherein the slice location includes at least one of: a next slice of the chunk when the slice is not a last slice of the chunk, a different chunk when the slice is the last slice of the chunk, another storage unit memory when a chunk map indicates that the chunk is assigned to another storage unit memory, or another site when the chunk map indicates that the chunk is assigned to a storage unit memory at the other site.

19. The computing device of claim 15 , wherein the facilitate processing of the partial task on at least one record of the other slice includes at least one of: queuing the slice for processing after other records of the slice in accordance with the record configuration of the slice or immediately processing the partial task on the at least one record.

20. A distributed storage network (DSN) comprises:

a first computing device with processing circuitry configured to execute operational instructions to:

retrieve from distributed storage a slice of a chunk for execution of a partial task;

identify a record configuration of the slice;

facilitate processing of a partial task on at least one record of the slice;

determine whether the slice includes a partial record based on the record configuration of the slice; and

when the processing circuitry determines that the slice does include a partial record, identify a slice location of another slice that includes a remaining partial record corresponding to the partial record;

determine whether the slice location is favorable; and

when the processing circuitry determines that the slice location is favorable, retrieve from the distributed storage the other slice from the slice location; and

facilitate processing of the partial task on at least one record of the other slice.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2018
From: DHUSE, GREG R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046488/0528 →
Continuity (4)
Continuation In Part 15193335 · Jun 27, 2016
Continuation 13868311 · Apr 23, 2013
Provisional Application 61637940 · Apr 25, 2012
Related Publication 20180336095A1 · Nov 22, 2018
Cited By (1)
US 12,519,621