IP Library Granted Patent US 10,289,688
Granted Patent B2
US 10,289,688 · App. 13/154,725 · Granted May 14, 2019

Metadata access in a dispersed storage network

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,289,688
App. No.
13/154,725
Granted
May 14, 2019
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 (84)

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, wherein the metadata includes at least one of an object identifier (ID), object size, object type, object format, directory information, a file name, a file path, a source name, a dispersed storage network (DSN) address, a snapshot identifier, a segmentation allocation table (SAT) source name, object hash, access permissions, or a timestamp;

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; and

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.

3. 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; and

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.

4. 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;

a vault source name;

the set of encoded data slices;

a hash of the data segment; or

an object number associated with the data ID.

5. 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.

6. 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, wherein the metadata includes at least one of an object identifier (ID), object size, object type, object format, directory information, a file name, a file path, a source name, a dispersed storage network (DSN) address, a snapshot identifier, a segmentation allocation table (SAT) source name, object hash, access permissions, or a timestamp;

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.

7. The method of claim 6 further comprises:

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

sending the transformed data to a requesting entity.

8. The method of claim 6 , 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.

9. 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, wherein the metadata includes at least one of an object identifier (ID), object size, object type, object format, directory information, a file name, a file path, a source name, a dispersed storage network (DSN) address, a snapshot identifier, a segmentation allocation table (SAT) source name, object hash, access permissions, or a timestamp;

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.

10. The computer of claim 9 , 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; and

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.

11. The computer of claim 9 , 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; and

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.

12. The computer of claim 9 , 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;

a vault source name;

the set of encoded data slices;

a hash of the data segment; or

an object number associated with the data ID.

13. The computer of claim 9 , 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.

14. A computer comprises:

an interface;

a non-transitory memory that stores operational instructions; and

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

determine 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;

determine 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, wherein the metadata includes at least one of an object identifier (ID), object size, object type, object format, directory information, a file name, a file path, a source name, a dispersed storage network (DSN) address, a snapshot identifier, a segmentation allocation table (SAT) source name, object hash, access permissions, or a timestamp;

retrieve, via the interface, 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;

retrieve, via the interface, 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 decode the received encoded data slices to reproduce the data segment; and

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

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

transform the data segment utilizing a metadata function to produce transformed data in accordance with the metadata; and

send, via the interface, the transformed data to a requesting entity.

16. The computer of claim 14 , wherein executing the operational instructions further cause the at least one processing device to dispersed storage error decode the received encoded data slices by:

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

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 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 Jun 7, 2011
From: RESCH, JASON K.; DHUSE, GREG; BAPTIST, ANDREW; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 026402/0351 →