IP Library Granted Patent US 10,970,171
Granted Patent B2
US 10,970,171 · App. 16/262,577 · Granted Apr 6, 2021

Metadata access in a dispersed storage network

Inventors: Jason K. Resch (Chicago, IL); Greg Dhuse (Chicago, IL); Andrew Baptist (Mt. Pleasant, WI); Wesley Leggette (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F11/0727G06F11/141G06F11/167G06F16/13H04L9/3242H04L9/3247H04L9/3263H04L9/3271H04L63/06H04L63/12H04L67/06H04W12/041H04W12/0431H04W12/35G06F16/137G06F21/31G06F21/6209G06F2211/1028H04L63/0428H04L67/1097H04L2209/043H04L2209/30H04L2209/34H04L2209/56H04L2209/80H04W12/10
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,970,171
App. No.
16/262,577
Granted
Apr 6, 2021
Kind
B2
Abstract

A method begins by a processing module dispersed storage error encoding a data segment to produce a set of encoded data slices and dispersed storage error encoding metadata associated with the data segment to produce a set of encoded metadata slices. The method continues with the processing module creating a set of data slice names for the set of encoded data slices and creating a set of metadata slice names based on the set of data slice names. The method continues with the processing module sending the set of encoded data slices and the set of data slice names to a dispersed storage network (DSN) memory for storage therein. The method continues with the processing module sending the set of encoded metadata slices and the set of metadata slice names to the DSN memory for storage therein.

Claims (76)

1. A method comprises:

dispersed storage error encoding a data segment to produce a set of encoded data slices;

dispersed storage error encoding metadata associated with the data segment to produce a set of encoded metadata slices;

creating a set of data slice names for the set of encoded data slices;

creating a set of metadata slice names based on the set of data slice names;

sending the set of encoded data slices and the set of data slice names to a dispersed storage network (DSN) memory, wherein the DSN memory stores an encoded data slice of the set of encoded data slices based on a corresponding one of the set of data slice names using a first level of memory allocation; and

sending the set of encoded metadata slices and the set of metadata slice names to the DSN memory, wherein the DSN memory stores an encoded metadata slice of the set of encoded metadata slices based on a corresponding one of the set of metadata slice names using a second level of memory allocation, and wherein the second level of memory allocation is smaller than the first level of memory allocation.

2. The method of claim 1 further comprises:

sending the encoded data slice and the corresponding one of the set of data slice names to a first dispersed storage (DS) unit of the DSN memory, wherein memory space of the first DS unit is partitioned in accordance with the first level of memory allocation.

3. The method of claim 2 further comprises:

sending the encoded metadata slice and the corresponding one of the set of metadata slice names to a second DS unit of the DSN memory, wherein memory space of the second DS unit is partitioned in accordance with the second level of memory allocation.

4. The method of claim 1 further comprises:

sending the encoded data slice and the corresponding one of the set of data slice names to a dispersed storage (DS) unit of the DSN memory, wherein a first portion of memory space of the DS unit is partitioned in accordance with the first level of memory allocation.

5. The method of claim 4 further comprises:

sending the encoded metadata slice and the corresponding one of the set of metadata slice names to the DS unit, wherein a second portion of the memory space of the DS unit is partitioned in accordance with the second level of memory allocation.

6. The method of claim 1 , wherein the creating the set of data slice names is based on at least one of:

a data identifier (ID) associated with the data segment;

a vault ID lookup;

a directory lookup;

a source name; or

a vault source name.

7. The method of claim 1 , wherein the creating the set of data slice names is based on at least one of:

the set of encoded data slices;

a hash of the data segment; or

an object number associated with a data ID.

8. The method of claim 1 , wherein the creating the set of metadata slice names comprises at least one of:

toggling a data/metadata flag of a data slice name of the set of data slice names to produce a corresponding metadata slice name of the set of metadata slice names;

performing an exclusive OR (XOR) logical function on the data slice name with a naming mask to produce the corresponding metadata slice name;

adding a constant value to the data slice name to produce the corresponding metadata slice name; or

subtracting the constant value from the data slice name to produce the corresponding metadata slice name.

9. A method comprises:

determining a set of data slice names corresponding to a data segment previously stored in a dispersed storage network (DSN) memory as a set of encoded data slices;

determining a set of metadata slice names based on the set of data slice names, wherein the metadata slice names correspond to metadata previously stored in the DSN memory as a set of encoded metadata slices;

retrieving at least a decode threshold number of encoded data slices of the set of encoded data slices from the DSN memory to produce received encoded data slices utilizing the set of data slice names, wherein the DSN memory retrieves an encoded data slice of the set of encoded data slices based on a corresponding one of the set of data slice names using a first level of memory allocation;

retrieving at least a decode threshold number of encoded metadata slices of the set of encoded metadata slices from the DSN memory to produce received encoded metadata slices utilizing the set of metadata slice names, wherein the DSN memory retrieves an encoded metadata slice of the set of encoded metadata slices based on a corresponding one of the set of metadata slice names using a second level of memory allocation, and wherein the second level of memory allocation is smaller than the first level of memory allocation;

dispersed storage error decoding the received encoded data slices to reproduce the data segment; and

dispersed storage error decoding the received encoded metadata slices to reproduce the metadata.

10. The method of claim 9 further comprises:

transforming the data segment utilizing a metadata function to produce transformed data in accordance with the metadata.

11. The method of claim 10 further comprises:

sending the transformed data to a requesting entity.

12. The method of claim 9 , wherein the dispersed storage error decoding the received encoded data slices comprises:

dispersed storage error decoding the received encoded data slices based on the metadata to reproduce the data segment.

13. A computer comprises:

an interface;

a non-transitory memory that stores operational instructions; and

at least one processing device that executes the operational instructions, which cause the at least one processing device to:

dispersed storage error encode a data segment to produce a set of encoded data slices;

dispersed storage error encode metadata associated with the data segment to produce a set of encoded metadata slices;

create a set of data slice names for the set of encoded data slices;

create a set of metadata slice names based on the set of data slice names;

send, via the interface, the set of encoded data slices and the set of data slice names to a dispersed storage network (DSN) memory, wherein the DSN memory stores an encoded data slice of the set of encoded data slices based on a corresponding one of the set of data slice names using a first level of memory allocation; and

send, via the interface, the set of encoded metadata slices and the set of metadata slice names to the DSN memory, wherein the DSN memory stores an encoded metadata slice of the set of encoded metadata slices based on a corresponding one of the set of metadata slice names using a second level of memory allocation, and wherein the second level of memory allocation is smaller than the first level of memory allocation.

14. The computer of claim 13 , wherein executing the operational instructions further cause the at least one processing device to:

send, via the interface, the encoded data slice and the corresponding one of the set of data slice names to a first dispersed storage (DS) unit of the DSN memory, wherein memory space of the first DS unit is partitioned in accordance with the first level of memory allocation.

15. The computer of claim 14 , wherein executing the operational instructions further cause the at least one processing device to:

send, via the interface, the encoded metadata slice and the corresponding one of the set of metadata slice names to a second DS unit of the DSN memory, wherein memory space of the second DS unit is partitioned in accordance with the second level of memory allocation.

16. The computer of claim 13 , wherein executing the operational instructions further cause the at least one processing device to:

send, via the interface, the encoded data slice and the corresponding one of the set of data slice names to a dispersed storage (DS) unit of the DSN memory, wherein a first portion of memory space of the DS unit is partitioned in accordance with the first level of memory allocation.

17. The computer of claim 16 , wherein executing the operational instructions further cause the at least one processing device to:

send, via the interface, the encoded metadata slice and the corresponding one of the set of metadata slice names to the DS unit, wherein a second portion of the memory space of the DS unit is partitioned in accordance with the second level of memory allocation.

18. The computer of claim 13 , wherein the at least one processing device functions to create the set of data slice names based on at least one of:

a data identifier (ID) associated with the data segment;

a vault ID lookup;

a directory lookup;

a source name; or

a vault source name.

19. The computer of claim 13 , wherein the at least one processing device functions to create the set of data slice names based on at least one of:

the set of encoded data slices;

a hash of the data segment; or

an object number associated with a data ID.

20. The computer of claim 13 , wherein the at least one processing device functions to create the set of metadata slice names by at least one of:

toggling a data/metadata flag of a data slice name of the set of data slice names to produce a corresponding metadata slice name of the set of metadata slice names;

performing an exclusive OR (XOR) logical function on the data slice name with a naming mask to produce the corresponding metadata slice name;

adding a constant value to the data slice name to produce the corresponding metadata slice name; or

subtracting the constant value from the data slice name to produce the corresponding metadata slice name.

Assignments (6)
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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2019
From: RESCH, JASON K.; DHUSE, GREG; BAPTIST, ANDREW; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 048194/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2019
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048195/0401 →
Continuity (3)
Continuation 13154725 · Jun 7, 2011
Provisional Application 61357430 · Jun 22, 2010
Related Publication 20190171616A1 · Jun 6, 2019