IP Library Granted Patent US 10,496,480
Granted Patent B2
US 10,496,480 · App. 16/002,638 · Granted Dec 3, 2019

Slice location identification

Inventors: Vimalkumar P. Gajjar (Roselle, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/108G06F3/064G06F3/067G06F3/0619G06F9/5027G06F11/1076G06F21/6218G06F21/64H04L43/0852H04L47/70H04L67/10H04L67/1097H04L67/306H04L67/32H04L63/08H04L63/102
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,496,480
App. No.
16/002,638
Granted
Dec 3, 2019
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) client module includes obtaining a data identifier for slice location identification. A source name corresponding to the data identifier is identified. A plurality of data segments are identified based on the source name. A set of slice names are generated for each of the plurality of data segments. A set of DST execution units are identified based on the sets of slice names. A set of query requests are generated for each data segment for transmission to the set of DST execution units. Query responses are received from the set of DST execution units. A storage record is generated that includes storage location information of the query responses. Migration of at least some encoded data slices associated with the sets of slice names is facilitated when the storage record compares unfavorably to a storage record requirement.

Claims (43)

1. A method for execution by a dispersed storage and task (DST) client module that includes a processor, the method comprises:

generating a set of query requests for each of a plurality of data segments that includes a corresponding set of slice names of a plurality of sets of slice names, wherein each slice name of each set of slice names of the plurality of sets of slice names includes a pillar index based on a vault affiliated with the plurality of data segments;

transmitting the set of query requests to a set of DST execution units;

receiving a plurality of sets of query responses from the set of DST execution units;

obtaining an data identifier for slice location identification, wherein obtaining the data identifier includes at least one of: receiving the data identifier via a network, initiating a query, extracting the data identifier from an error message, or receiving a user request that includes the data identifier, and wherein the error message results in rebuilding bad and/or missing slices using other sets of retrieved encoded data slices that are deemed to be good slices;

generating a storage record that includes the data identifier and an identity of the set of DST execution units, wherein the set of DST execution units are identified based on accessing a table that includes a mapping of slice names to a plurality of physical locations, determining a set of physical locations of the plurality of physical locations for each set of slice names based on the table, further based on the set of physical locations corresponding to each set of slice names; and

facilitating migration of at least some encoded data slices associated with the plurality of sets of slice names when the storage record compares unfavorably to a storage record requirement, wherein facilitating the migration includes identifying the at least some encoded data slices based on the comparison of the storage record to the storage record requirement; and wherein the at least some encoded data slices are identified when a memory device identifier of storage location information of the at least some encoded data slices is associated with an unfavorable reliability level.

2. The method of claim 1 , further comprising:

identifying a source name corresponding to the data identifier; and

identifying the plurality of data segments based on the source name.

3. The method of claim 1 , wherein a source name is identified based on a directory lookup utilizing the data identifier to extract the source name from a directory.

4. The method of claim 2 , wherein identifying the plurality of data segments includes at least one of: extracting identities from a segment allocation table associated with the source name or extracting from a first retrieved data segment associated with the source name.

5. The method of claim 2 , wherein each slice name of each set of slice names of the plurality of sets of slice names includes the source name and a segment number in accordance with the plurality of data segments.

6. The method of claim 1 , further comprising:

generating the set of slice names of the plurality of sets of slice names for each of the plurality of data segments; and

identifying the set of DST execution units based on the plurality of sets of slice names.

7. The method of claim 1 , wherein information of the storage record is graphically displayed on a display device associated with the DST client module.

8. A processing system of a dispersed storage and task (DST) client module comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to perform operations including:

generating a set of query requests for each of a plurality of data segments that includes a corresponding set of slice names of a plurality of sets of slice names, wherein each slice name of each set of slice names of the plurality of sets of slice names includes a pillar index based on a vault affiliated with the plurality of data segments;

transmitting the set of query requests to a set of DST execution units;

receiving a plurality of sets of query responses from the set of DST execution units;

obtaining an data identifier for slice location identification, wherein obtaining the data identifier includes at least one of: receiving the data identifier via a network, initiating a query, extracting the data identifier from an error message, or receiving a user request that includes the data identifier, and wherein the error message results in rebuilding bad and/or missing slices using other sets of retrieved encoded data slices that are deemed to be good slices;

generating a storage record that includes the data identifier and an identity of the set of DST execution units, wherein the set of DST execution units are identified based on accessing a table that includes a mapping of slice names to a plurality of physical locations, determining a set of physical locations of the plurality of physical locations for each set of slice names based on the table, further based on the set of physical locations corresponding to each set of slice names; and

facilitating migration of at least some encoded data slices associated with the plurality of sets of slice names when the storage record compares unfavorably to a storage record requirement, wherein facilitating the migration includes identifying the at least some encoded data slices based on the comparison of the storage record to the storage record requirement; and wherein the at least some encoded data slices are identified when a memory device identifier of storage location information of the at least some encoded data slices is associated with an unfavorable reliability level.

9. The processing system of claim 8 , wherein the operations further include:

identifying a source name corresponding to the data identifier; and

identifying the plurality of data segments based on the source name.

10. The processing system of claim 9 , wherein a source name is identified based on a directory lookup utilizing the data identifier to extract the source name from a directory.

11. The processing system of claim 9 , wherein identifying the plurality of data segments includes at least one of: extracting identities from a segment allocation table associated with the source name or extracting from a first retrieved data segment associated with the source name.

12. The processing system of claim 9 , wherein each slice name of each set of slice names of the plurality of sets of slice names includes the source name and a segment number in accordance with the plurality of data segments.

13. The processing system of claim 8 , wherein the operations further include:

generating the set of slice names of the plurality of sets of slice names for each of the plurality of data segments; and

identifying the set of DST execution units based on the plurality of sets of slice names.

14. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to perform operations including:

generating a set of query requests for each of a plurality of data segments that includes a corresponding set of slice names of a plurality of sets of slice names, wherein each slice name of each set of slice names of the plurality of sets of slice names includes a pillar index based on a vault affiliated with the plurality of data segments;

transmitting the set of query requests to a set of DST execution units;

receiving a plurality of sets of query responses from the set of DST execution units;

obtaining an data identifier for slice location identification, wherein obtaining the data identifier includes at least one of: receiving the data identifier via a network, initiating a query, extracting the data identifier from an error message, or receiving a user request that includes the data identifier, and wherein the error message results in rebuilding bad and/or missing slices using other sets of retrieved encoded data slices that are deemed to be good slices;

generating a storage record that includes the data identifier and an identity of the set of DST execution units, wherein the set of DST execution units are identified based on accessing a table that includes a mapping of slice names to a plurality of physical locations, determining a set of physical locations of the plurality of physical locations for each set of slice names based on the table, further based on the set of physical locations corresponding to each set of slice names; and

facilitating migration of at least some encoded data slices associated with the plurality of sets of slice names when the storage record compares unfavorably to a storage record requirement, wherein facilitating the migration includes identifying the at least some encoded data slices based on the comparison of the storage record to the storage record requirement; and wherein the at least some encoded data slices are identified when a memory device identifier of storage location information of the at least some encoded data slices is associated with an unfavorable reliability level.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2018
From: GAJJAR, VIMALKUMAR P.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046017/0653 →
Continuity (11)
Continuation 15688030 · Aug 28, 2017
Continuation In Part 15442273 · Feb 24, 2017
Continuation 13959262 · Aug 5, 2013
Continuation In Part 12816126 · Jun 15, 2010
Continuation In Part 15230145 · Aug 5, 2016
Continuation 14292727 · May 30, 2014
Continuation In Part 13736848 · Jan 8, 2013
Continuation 12814467 · Jun 13, 2010
Provisional Application 61711106 · Oct 8, 2012
Provisional Application 61256411 · Oct 30, 2009
Related Publication 20180285194A1 · Oct 4, 2018