IP Library Granted Patent US 9,507,786
Granted Patent B2
US 9,507,786 · App. 13/718,961 · Granted Nov 29, 2016

Retrieving data utilizing a distributed index

Inventors: Greg Dhuse (Chicago, IL); Wesley Leggette (Chicago, IL); Adam Michael Gray (Chicago, IL); Ilya Volvovski (Chicago, IL); Andrew Baptist (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/30091G06F11/08G06F11/1096G06F17/30002G06F17/30106G06F11/1092
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 9,507,786
App. No.
13/718,961
Granted
Nov 29, 2016
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module receiving a request to retrieve a data object based on a search attribute. The method continues with the DS processing module retrieving and decoding a set of encoded index data slices to reconstruct an index file. The method continues with the DS processing module identifying a child index file, retrieving and decoding a set of encoded child index data slices to reconstruct the child index file, and determining whether the child index file includes a dispersed storage network (DSN) address for the data object. When the child index file includes the DSN address for the data object, the method continues with the DS processing module retrieving a plurality of sets of encoded data slices based on the DSN address and decoding the plurality of sets of encoded data slices to recapture the data object.

Claims (28)

1. A method for execution by a processing module, the method comprises:

receiving a request to retrieve a data object, wherein the request includes a search attribute regarding the data object;

determining a dispersed storage network (DSN) address for an index file based on the search attribute;

retrieving a set of encoded index data slices from a DSN based on the DSN address;

decoding the set of encoded index data slices to reconstruct the index file, wherein the index file includes a plurality of DSN child index addresses regarding a plurality of child index files;

identifying one of the plurality of child index files based on the search attribute;

retrieving a set of encoded child index data slices from the DSN based on one of the plurality of DSN child index addresses corresponding to the one of the plurality of child index files;

decoding the set of encoded child index data slices to reconstruct the one of the plurality of child index files;

determining whether the one of the plurality of child index files includes a DSN address for the data object;

when the one of the plurality of child index files includes the DSN address for the data object, retrieving a plurality of sets of encoded data slices based on the DSN address for the data object; and

decoding the plurality of sets of encoded data slices to recapture the data object.

2. The method of claim 1 , wherein the identifying the one of the plurality of child index files comprises:

comparing the search attribute to an index key associated with the one of the plurality of child index files; and

identifying the one of the plurality of child index files when the comparing is favorable.

3. The method of claim 1 , wherein the determining whether the one of the plurality of child index files includes the DSN address comprises:

interpreting an index file type indicator of the one of the plurality of child index files; and

when the index file type indicator of the one of the plurality of child index files is a leaf node, determining that the one of the plurality of child index files includes the DSN address.

4. The method of claim 1 further comprises:

determining whether the one of the plurality of child index files includes the data object; and

when the one of the plurality of child index files includes the data object, responding to the request with the data object from the one of the plurality of child index files.

5. The method of claim 1 further comprises:

when the one of the plurality of child index files does not include the DSN address for the data object, entering a loop that includes:

identifying, from the one of the plurality of child index files, one of another plurality of child index files based on the search attribute;

retrieving another set of encoded child data slices from the DSN based on one of another plurality of DSN child index addresses corresponding to the one of the other plurality of child index files;

decoding the other set of encoded child data slices to reproduce the one of the other plurality of child index files;

determining whether the one of the other plurality of child index files includes the DSN address for the data object;

when the one of the other plurality of child index files does not include the DSN address for the data object, repeating in accordance with the one of the other plurality of child index files; and

when the one of the other plurality of child index files includes the DSN address for the data object, exiting the loop.

Assignments (4)
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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2012
From: DHUSE, GREG; LEGGETTE, WESLEY; GRAY, ADAM MICHAEL; VOLVOVSKI, ILYA; BAPTIST, ANDREW
To: CLEVERSAFE, INC.
Reel/Frame 029494/0726 →
Continuity (2)
Provisional Application 61593116 · Jan 31, 2012
Related Publication 20130198226A1 · Aug 1, 2013