IP Library Granted Patent US 10,176,044
Granted Patent B2
US 10,176,044 · App. 15/334,604 · Granted Jan 8, 2019

Fallback delegates for modification of an index structure

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,176,044
App. No.
15/334,604
Granted
Jan 8, 2019
Kind
B2
Abstract

A method includes determining that a primary delegate device is unavailable. The method continues by identifying a fallback delegate device for changing a node of a hierarchical index structure using a deterministic function. The deterministic function includes performing a first modification of global namespace address of the unavailable primary delegate device to produce a first modified address identifier. The deterministic function further includes determining whether another delegate device of the plurality of delegate devices has a global namespace address corresponding to the first modified address identifier. When the global namespace address of other delegate device corresponds to the first modified address identifier, the method further includes processing a change to a node of the one or more nodes via the other delegate device as the fallback delegate device.

Claims (80)

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

determining that a primary delegate device is unavailable, wherein the primary delegate device is responsible for changing one or more nodes of a plurality of nodes of a hierarchical index structure, wherein the hierarchical index structure is used to identify particular data stored in the DSN and wherein the plurality of nodes includes a root index node, a plurality of index nodes, and a plurality of leaf index nodes arranged in a related hierarchical manner; and

identifying a fallback delegate device for changing the one or more nodes using a deterministic function that includes:

performing a first modification of global namespace address of the unavailable primary delegate device to produce a first modified address identifier, wherein each delegate device of a plurality of delegate devices is assigned an individual global namespace address that is partially based on location within the DSN;

determining whether another delegate device of the plurality of delegate devices has a global namespace address corresponding to the first modified address identifier; and

when the global namespace address of other delegate device corresponds to the first modified address identifier, processing a change to a node of the one or more nodes via the other delegate device as the fallback delegate device.

2. The method of claim 1 further comprises:

modifying most significant bits (MSB) of the global namespace address of the unavailable primary delegate device to produce a modified MSB; and

determining whether the MSB of the global namespace address of the other delegate device substantially matches the modified MSB; and

when the MSB of the global namespace address of the other delegate device substantially matches the modified MSB, identifying the other delegate device as the fallback delegate device for the one or more nodes.

3. The method of claim 2 , wherein the individual global namespace address comprises:

the MSB corresponding to a geographic region of the DSN that is partially based on location within the DSN; and

less significant bits (LSB) corresponding to a unique identifier of a particular delegate device within the geographic region.

4. The method of claim 1 , determining whether another delegate device of the plurality of delegate devices has a global namespace address corresponding to the first modified address identifier comprises at least one of:

determining that the global namespace address of the other delegate device substantially matches the first modified address identifier and determining that the other delegate device is available to become the primary delegate device; and

determining that the global namespace address of the other delegate device is a best-available match to the first modified address identifier and determining that the other delegate device is available to become the primary delegate device.

5. The method of claim 1 , wherein the determining whether another delegate device of the plurality of delegate devices has a global namespace address corresponding to the first modified address identifier comprises:

identifying two other delegate devices as potential fallback delegate devices using a first pass of a modified address of the unavailable primary delegate device; and

changing the first pass modified address to the first modified address identifier to select the other delegate device from the two delegate devices.

6. The method of claim 1 further comprises:

inverting most significant bits (MSB) of the global namespace address of the unavailable primary delegate device to produce the first modified address identifier;

when the global namespace address of the other delegate device does not correspond to the first modified address identifier:

performing a second modification to the first modified address identifier to produce a second modified address identifier; and

determining that a second other delegate device of the plurality of delegate devices has a global namespace address corresponding to the second modified address identifier; and

processing a change to a node of the one or more nodes via the second other delegate device as the fallback delegate device.

7. The method of claim 6 further comprises:

when the global namespace address of the second other delegate device does not correspond to the second modified address identifier:

continuing to perform modifications of a current modified address identifier until one of the plurality of delegate devices is identified as the fallback delegate device or until the modifications have been exhausted; and

when the modifications have been exhausted, processing, by the device, the change to a node of the one or more nodes.

8. The method of claim 1 , wherein the processing the change to the node of the one or more nodes via the other delegate device comprises:

sending, by the device, a request to the other delegate device regarding the change to the node of the one or more nodes;

determining, by the other delegate device, whether the other delegate device is responsible for executing the change type specific request; and

when the other delegate device is responsible for executing the request:

sending, by the other delegate device, a response message to the device indicating that the other delegate device is responsible for executing the request; and

executing, by the other delegate device, the change to the node of the one or more nodes.

9. The method of claim 8 , wherein the determining whether the other delegate device is responsible for executing the change type specific request comprises:

performing the first modification of the global namespace address of the unavailable primary delegate device to produce the first modified address identifier; and

determining that the other delegate device has the global namespace address corresponding to the first modified address identifier.

10. A non-transitory computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a device of a dispersed storage network (DSN), causes the device to:

determine that a primary delegate device is unavailable, wherein the primary delegate device is responsible for changing one or more nodes of a plurality of nodes of a hierarchical index structure, wherein the hierarchical index structure is used to identify particular data stored in the DSN and wherein the plurality of nodes includes a root index node, a plurality of index nodes, and a plurality of leaf index nodes arranged in a related hierarchical manner; and

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

identify a fallback delegate device for changing the one or more nodes using a deterministic function that includes:

perform a first modification of global namespace address of the unavailable primary delegate device to produce a first modified address identifier, wherein each delegate device of a plurality of delegate devices is assigned an individual global namespace address that is partially based on location within the DSN;

determine whether another delegate device of the plurality of delegate devices has a global namespace address corresponding to the first modified address identifier; and

when the global namespace address of other delegate device corresponds to the first modified address identifier, process a change to a node of the one or more nodes via the other delegate device as the fallback delegate device.

11. The non-transitory computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by the device, causes the device to:

modify most significant bits (MSB) of the global namespace address of the unavailable primary delegate device to produce a modified MSB; and

determine whether the MSB of the global namespace address of the other delegate device substantially matches the modified MSB; and

when the MSB of the global namespace address of the other delegate device substantially matches the modified MSB, identify the other delegate device as the fallback delegate device for the one or more nodes.

12. The non-transitory computer readable memory of claim 11 , wherein the individual global namespace address comprises:

the MSB corresponding to a geographic region of the DSN that is partially based on location within the DSN; and

less significant bits (LSB) corresponding to a unique identifier of a particular delegate device within the geographic region.

13. The non-transitory computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by the device, causes the device to determine whether another delegate device of the plurality of delegate devices has the global namespace address corresponding to the first modified address identifier by at least one of:

determining that the global namespace address of the other delegate device substantially matches the first modified address identifier and determining that the other delegate device is available to become the primary delegate device; and

determining that the global namespace address of the other delegate device is a best-available match to the first modified address identifier and determining that the other delegate device is available to become the primary delegate device.

14. The non-transitory computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by the device, causes the device to determine whether another delegate device of the plurality of delegate devices has the global namespace address corresponding to the first modified address identifier comprises:

identifying two other delegate devices as potential fallback delegate devices using a first pass of a modified address of the unavailable primary delegate device; and

changing the first pass modified address to the first modified address identifier to select the other delegate device from the two delegate devices.

15. The non-transitory computer readable memory of claim 10 , wherein the second memory element further stores operational instructions that, when executed by the device, causes the device to:

invert most significant bits (MSB) of the global namespace address of the unavailable primary delegate device to produce the first modified address identifier;

when the global namespace address of the other delegate device does not correspond to the first modified address identifier:

perform a second modification to the first modified address identifier to produce a second modified address identifier;

determine that a second other delegate device of the plurality of delegate devices has a global namespace address corresponding to the second modified address identifier; and

process a change to a node of the one or more nodes via the second other delegate device as the fallback delegate device.

16. The non-transitory computer readable memory of claim 15 , wherein the second memory element further stores operational instructions that, when executed by the device, causes the device to:

when the global namespace address of the second other delegate device does not correspond to the second modified address identifier:

continue to perform modifications of a current modified address identifier until one of the plurality of delegate devices is identified as the fallback delegate device or until the modifications have been exhausted; and

when the modifications have been exhausted, process, by the device, the change to a node of the one or more nodes.

17. The non-transitory computer readable memory of claim 10 further comprises:

the second memory element further stores operational instructions that, when executed by the device, causes the device to process the change to the node of the one or more nodes via the other delegate device by:

send a request to the other delegate device regarding the change to the node of the one or more nodes; and

a third memory element that stores operational instructions that, when executed by the other delegate device, causes the other delegate device to:

determine whether the other delegate device is responsible for executing the change type specific request; and

when the other delegate device is responsible for executing the request:

send a response message to the device indicating that the other delegate device is responsible for executing the request; and

execute the change to the node of the one or more nodes.

18. The non-transitory computer readable memory of claim 17 , wherein the third memory element further stores operational instructions that, when executed by the other delegate device, causes the other delegate device to determine whether the other delegate device is responsible for executing the change type specific request by:

performing the first modification of the global namespace address of the unavailable primary delegate device to produce the first modified address identifier; and

determining that the other delegate device has the global namespace address corresponding to the first modified address identifier.

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 Oct 26, 2016
From: DHUSE, GREG R.; GRAY, ADAM M.; HORAN, SCOTT M.; KHADIWALA, RAVI V.; REID, TYLER K.; RESCH, JASON K.; SCHOLL, DANIEL J.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040138/0430 →