IP Library Granted Patent US 10,387,382
Granted Patent B2
US 10,387,382 · App. 15/336,410 · Granted Aug 20, 2019

Estimating a number of entries in a dispersed hierarchical index

Inventors: Greg R. Dhuse (Chicago, IL); Kevin M. Freese (Wichita, KS); Jason K. Resch (Chicago, IL); Daniel J. Scholl (Chicago, IL); Ethan S. Wozniak (Park Ridge, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F16/182G06F16/2246G06F3/0604G06F3/067G06F3/0631G06F3/0665G06F11/1076G06F11/1092G06F12/0684G06F2212/154G06F2212/263H03M13/1515H03M13/3761H04L43/0852H04L43/0876H04L43/16H04L67/1097
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,387,382
App. No.
15/336,410
Granted
Aug 20, 2019
Kind
B2
Abstract

Methods and systems for estimating a number of entries in a dispersed hierarchical index. The method and systems involve determining a number of random walks N to perform on the dispersed hierarchical index, conducting N walkthroughs based on the number of walkthroughs, determining a number of walk entries for each of the N random walks and averaging the number of walk entries for each of the N random walks to produce an estimated total number of entries for the dispersed hierarchical index. The determining may be based on one or more of a number of levels, a desired confidence interval, a predetermination, and interpretation of system registry information, and an interpretation of a request. Each random walk starts at a root node and ends at a leaf node through L levels of the dispersed hierarchical index.

Claims (42)

1. A method of estimating a number of entries in a dispersed hierarchical index of a dispersed storage network comprising:

determining a number of walks to perform on the dispersed hierarchical index of the dispersed storage network to produce a determination, where the dispersed hierarchical index includes a root node, a plurality of index nodes and a plurality of leaf nodes, where the root node indexes the plurality of index nodes, and the plurality of index nodes index the plurality of leaf nodes;

conducting a plurality of walks based on the determination, where each respective walk of the plurality of walks starts at the root node and ends at a respective leaf node of the plurality of leaf nodes;

determining a respective number of walk entries associated with each respective walk of the plurality of walks; and

averaging the respective number of walk entries associated with each respective walk of the plurality of walks to produce an estimated total number of entries for the dispersed hierarchical index.

2. The method of claim 1 , wherein the plurality of walks are random walks.

3. The method of claim 1 , wherein the dispersed hierarchical index is use to locate a plurality of data objects stored as a plurality of sets of encoded data slices.

4. The method of claim 3 , wherein the plurality of sets of encoded data slices are associated with a dispersed storage network address.

5. The method of claim 4 , further comprising using the dispersed hierarchical index to locate the dispersed storage network address using keyword searching.

6. The method of claim 1 , wherein one or more of the root node, the plurality of index nodes and the plurality of leaf nodes comprise a plurality of entries of one or more of an associated index key range, node pointers, and pointers to data objects stored in the dispersed storage network.

7. The method of claim 6 , wherein one or more of the node pointers and pointers to data objects stored in the dispersed storage network include a virtual dispersed storage network address corresponding to one or more of a storage location of a node and a storage location of a data object.

8. The method of claim 1 , further comprising dispersed storage error encoding one or more of the root node, the plurality of index nodes, and the plurality of leaf nodes, to produce a set of index slices.

9. The method of claim 1 , wherein the dispersed hierarchical index includes dimensions associated with one or more index attributes, wherein the index attributes include one or more of a maximum number of levels, a minimum number of levels, a maximum number of child nodes in a parent-child node relationship, a minimum number of child nodes in the parent-child node relationship, a maximum number of sibling nodes at a common level, a minimum number of sibling nodes at a common level, a maximum number of entries in a node, and a minimum number of entries in the node.

10. A dispersed storage processing unit for estimating a number of entries in a dispersed hierarchical index of a dispersed storage network, the dispersed storage processing unit comprising:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

determine a number of walks to perform on the dispersed hierarchical index of the dispersed storage network to produce a determination, where the dispersed hierarchical index includes a root node, a plurality of index nodes and a plurality of leaf nodes, where the root node indexes the plurality of index nodes, and the plurality of index nodes index the plurality of leaf nodes;

conduct a plurality of walks based on the determination, where each respective walk of the plurality of walks starts at the root node and ends at a respective leaf node of the plurality of leaf nodes;

determine a respective number of walk entries associated with each respective walk of the plurality of walks; and

average the respective number of walk entries associated with each respective walk of the plurality of walks to produce an estimated total number of entries for the dispersed hierarchical index.

11. The dispersed storage processing unit of claim 10 , wherein the plurality of walks are random walks.

12. The dispersed storage processing unit of claim 10 , wherein the dispersed hierarchical index is use to locate a plurality of data objects stored as a plurality of sets of encoded data slices.

13. The dispersed storage processing unit of claim 12 , wherein the plurality of sets of encoded data slices are associated with a dispersed storage network address.

14. The dispersed storage processing unit of claim 13 , wherein the memory further includes instructions for causing the processor to use the dispersed hierarchical index to locate the dispersed storage network address using keyword searching.

15. The dispersed storage processing unit of claim 10 , wherein one or more of the root node, the plurality of index nodes and the plurality of leaf nodes comprise a plurality of entries of one or more of an associated index key range, node pointers, and pointers to data objects stored in the dispersed storage network.

16. The dispersed storage processing unit of claim 15 , wherein one or more of the node pointers and pointers to data objects stored in the dispersed storage network include a virtual dispersed storage network address corresponding to one or more of a storage location of a node and a storage location of a data object.

17. The dispersed storage processing unit of claim 10 , wherein the memory further includes instructions for causing the processor to dispersed storage error encoding one or more of the root node, the plurality of index nodes, and the plurality of leaf nodes, to produce a set of index slices.

18. The dispersed storage processing unit of claim 10 , wherein the dispersed hierarchical index includes dimensions associated with one or more index attributes, wherein the index attributes include one or more of a maximum number of levels, a minimum number of levels, a maximum number of child nodes in a parent-child node relationship, a minimum number of child nodes in the parent-child node relationship, a maximum number of sibling nodes at a common level, a minimum number of sibling nodes at a common level, a maximum number of entries in a node, and a minimum number of entries in the node.

19. A dispersed storage network comprising:

a plurality of dispersed storage units storing encoded data slices of a set of encoded data slices;

a dispersed storage processing unit including:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

determine a number of walks to perform on a dispersed hierarchical index of the dispersed storage network to produce a determination, where the dispersed hierarchical index includes a root node, a plurality of index nodes and a plurality of leaf nodes, where the root node indexes the plurality of index nodes, and the plurality of index nodes index the plurality of leaf nodes;

conduct a plurality of walks based on the determination, where each respective walk of the plurality of walks starts at the root node and ends at a respective leaf node of the plurality of leaf nodes;

determine a respective number of walk entries associated with each respective walk of the plurality of walks; and

average the respective number of walk entries associated with each respective walk of the plurality of walks to produce an estimated total number of entries for the dispersed hierarchical index.

20. The dispersed storage network of claim 19 , wherein the plurality of walks are random walks.

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 Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2016
From: DHUSE, GREG R.; FREESE, KEVIN M.; RESCH, JASON K.; SCHOLL, DANIEL J.; WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040154/0499 →
Continuity (2)
Provisional Application 62272848 · Dec 30, 2015
Related Publication 20170193023A1 · Jul 6, 2017