IP Library Granted Patent US 10,394,476
Granted Patent B2
US 10,394,476 · App. 15/671,670 · Granted Aug 27, 2019

Multi-level stage locality selection on a large system

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F3/0631G06F3/064G06F3/067G06F3/0619G06F3/0653G06F11/0727G06F11/0754G06F11/1076G06F11/2058H04L9/0618H04L67/1097G06F3/0638G06F3/0644G06F11/2094H04L2209/34
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,394,476
App. No.
15/671,670
Granted
Aug 27, 2019
Kind
B2
Abstract

A method for execution by a computing device of a dispersed storage network (DSN). The method begins with obtaining a plurality of write requests. The method continues where for a write request of the plurality of write requests, the computing device generates a vault identification and a generation number. The method continues where the computing device obtains a rounded timestamp and a capacity factor and generates a temporary object number based on the rounded timestamp and the capacity factor. The method continues where the computing device generates a temporary source name based on the vault identification, the generation number, and the temporary object number. The method continues where the computing device identifies a set of storage units of a plurality of sets of storage units of the DSN based on the temporary source name.

Claims (65)

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

obtaining a plurality of write requests; and

for a write request of the plurality of write requests:

generating a vault identification and a generation number;

obtaining a rounded timestamp and a capacity factor;

generating a temporary object number based on the rounded timestamp and the capacity factor;

generating a temporary source name based on the vault identification, the generation number, and the temporary object number; and

identifying a set of storage units of a plurality of sets of storage units of the DSN based on the temporary source name.

2. The method of claim 1 , wherein the temporary object number is generated by performing a first deterministic function on the rounded timestamp and the capacity factor.

3. The method of claim 1 further comprises:

generating an object number modifier based on the rounded timestamp and the capacity factor;

combining the temporary source name and the object number modifier to produce a source name, wherein the source name includes the vault identification, the generation number and an object number, wherein the temporary object number is modified based on the object number modifier to produce the object number;

dispersed storage error encoding one or more data segments of the write request to produce one or more sets of encoded data slices;

generating one or more sets of slice names using the source name, wherein the one or more sets of slice names correspond to the one or more sets of encoded data slices; and

issuing at least one set of write slice requests to the set of storage units, wherein the at least one set of write slice requests includes the one or more sets of encoded data slices and the one or more sets of slice names.

4. The method of claim 3 , wherein the object number modifier is generated by performing a second deterministic function on the rounded timestamp and the capacity factor.

5. The method of claim 1 , wherein the capacity factor includes at least one of:

an expected processing performance level of a set of storage units of the plurality of sets of storage units of the DSN; and

an expected processing performance level of the computing device.

6. The method of claim 1 , wherein the obtaining the capacity factor includes at least one of:

determining the capacity factor based on performance information for available sets of storage units;

performing a lookup;

interpreting an error message; and

identifying a capacity level of the computing device.

7. The method of claim 1 , wherein the obtaining the rounded timestamp comprises one of:

during a time period, generating the rounded timestamp by rounding a current timestamp up to an end of the time period; and

receiving the rounded timestamp.

8. The method of claim 1 , wherein the generating the vault identification and the generation number includes one or more of:

performing a registry lookup;

accessing a requesting entity to vault identification (ID) table; and

determining a current generation number indicator for the vault ID.

9. A computing device of a dispersed storage network (DSN) comprises:

memory;

an interface; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

obtain a plurality of write requests; and

for a write request of the plurality of write requests:

generate a vault identification and a generation number;

obtain a rounded timestamp and a capacity factor;

generate a temporary object number based on the rounded timestamp and the capacity factor;

generate a temporary source name based on the vault identification, the generation number, and the temporary object number; and

identify a set of storage units of a plurality of sets of storage units of the DSN based on the temporary source name.

10. The computing device of claim 9 , wherein the processing module is operable to generate the temporary object number by performing a first deterministic function on the rounded timestamp and the capacity factor.

11. The computing device of claim 9 , wherein the processing module is further operable to:

generate an object number modifier based on the rounded timestamp and the capacity factor;

combine the temporary source name and the object number modifier to produce a source name, wherein the source name includes the vault identification, the generation number and an object number, wherein the temporary object number is modified based on the object number modifier to produce the object number;

dispersed storage error encode data of the write request to produce one or more sets of encoded data slices;

generate one or more sets of slice names using the source name, wherein the one or more sets of slice names correspond to the one or more sets of encoded data slices; and

issue at least one set of write slice requests to the set of storage units, wherein the at least one set of write slice requests includes the one or more sets of encoded data slices and the one or more sets of slice names.

12. The computing device of claim 11 , wherein the processing module is further operable to generate the object number modifier by performing a second deterministic function on the rounded timestamp and the capacity factor.

13. The computing device of claim 9 , wherein the capacity factor includes at least one of:

an expected processing performance level of a set of storage units of the plurality of sets of storage units of the DSN; and

an expected processing performance level of the computing device.

14. The computing device of claim 9 , wherein the processing module is operable to obtain the capacity factor by at least one of:

determining the capacity factor based on performance information for available sets of storage units;

performing a lookup;

interpreting an error message; and

identifying a capacity level of the computing device.

15. The computing device of claim 9 , wherein processing module is operable to obtain the rounded timestamp by:

during a time period, generating the rounded timestamp by rounding a current timestamp up to an end of the time period; and

receiving the rounded timestamp.

16. The computing device of claim 9 , wherein the processing module is operable to generate the vault identification and the generation number by one or more of:

performing a registry lookup;

accessing a requesting entity to vault identification (ID) table; and

determining a current generation number indicator for the vault ID.

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 Aug 8, 2017
From: BAPTIST, ANDREW D.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043231/0994 →
Continuity (3)
Continuation In Part 14636860 · Mar 3, 2015
Provisional Application 61986399 · Apr 30, 2014
Related Publication 20170351454A1 · Dec 7, 2017