IP Library Patent Application 14292662
Patent Application
App. No. 14/292,662

CO-LOCATE OBJECTS REQUEST

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 None
App. No.
14/292,662
Abstract

A method begins by a dispersed storage (DS) processing module receiving a data object co-locate write request. The method continues with the DS processing module obtaining a plurality of sets of encoded data slices for a data object to co-locate. The method continues with the DS processing module generating a plurality of sets of slice names for the data object to co-locate based on another plurality of sets of slice names associated with a data object to be co-located with. The method continues with the DS processing module storing the plurality of sets of encoded data slices in the DSN using the generated plurality of sets of slice names for the data object co-locate.

Claims (70)

1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a data object co-locate write request;

obtaining a plurality of sets of encoded data slices for a data object to co-locate;

generating a plurality of sets of slice names for the data object to co-locate based on another plurality of sets of slice names associated with a data object to be co-located with; and

storing the plurality of sets of encoded data slices in the DSN using the generated plurality of sets of slice names for the data object to co-locate.

2 . The method of claim 1 , wherein the data object co-locate write request includes a first data identifier for the data object to be co-located and a second data identifier for the data object to be co-located with.

3 . The method of claim 2 , wherein the first and second data identifiers include at least:

a data name;

an object number; and

source name.

4 . The method of claim 2 , wherein the first and second data identifiers include at least:

a slice index field;

a vault identifier (ID) field;

a generation field;

an object number field; and

a segment number field.

5 . The method of claim 4 , wherein the co-located data objects have same vault identifier (ID), same generation field number, and similar object field numbers with storage of the plurality of sets of encoded data slices in the DSN within a range of DSN addresses assigned to a common set of storage units within the DSN.

6 . The method of claim 4 , wherein generating the plurality of sets of slice names further comprises:

modifying the vault ID of the first data identifier to match the vault ID of the second data identifier; and

modifying the object number fields of the first data identifier to be in a range of the object number fields of the second data identifier.

7 . The method of claim 4 further comprises:

when obtaining a plurality of sets of encoded data slices, identifying a set of execution units associated with the data ID of the data object to be co-located with.

8 . The method of claim 7 , wherein the identifying includes:

accessing one or more of a directory and a dispersed hierarchical index to identify a DSN address associated with the data ID of the data object to be co-located with; and

performing a DSN address-to-physical location table lookup to identify the set of execution units.

9 . The method of claim 1 further comprises:

after storing the plurality of sets of encoded data slices in the DSN, confirming storage of the plurality of sets of encoded data slices; and

after confirming, and when the sets of encoded data slices for a data object to co-locate were previous stored in the DSN, deleting the previously stored plurality of sets of encoded data slices.

10 . The method of claim 1 , wherein the obtaining includes one or more of:

receiving by extracting the plurality of sets of encoded data slices from the write request;

generating by encoding the data object be co-located using a dispersed storage error coding function to produce the plurality of sets of encoded data slices; and

retrieving by identifying previous sets of slice names utilized to store the plurality of sets of encoded data slices based on a data ID of the data object to become co-located, determining if they are presently co-located and, if not, issuing one or more sets of read slice requests to a previously utilized set of storage units where the one or more sets of read slice requests includes the previous sets of slice names, and receiving the plurality of sets of encoded data slices.

11 . The method of claim 1 , wherein the data object co-locate request further includes the data object to be co-located.

12 . The method of claim 1 , wherein the received data object comprises two or more data objects to be co-located.

13 . A dispersed storage (DS) module comprises:

a first module, when operable within a computing device, causes the computing device to: receive a data object co-locate write request;

a second module, when operable within the computing device, causes the computing device to: obtain a plurality of sets of encoded data slices for a data object to co-locate;

a third module, when operable within the computing device, causes the computing device to: generate a plurality of sets of slice names for the data object to co-locate based on another plurality of sets of slice names associated with a data object to be co-located with; and

a fourth module, when operable within the computing device, causes the computing device to: store the plurality of sets of encoded data slices in memory using the generated plurality of sets of slice names for the data object co-locate.

14 . The DS module of claim 13 further comprises:

the second module, when operable within the computing device, further causes the computing device to:

receive, wherein the second module extracts the plurality of sets of encoded data slices from the write request;

generate, wherein the second module encodes the data object be co-located using a dispersed storage error coding function to produce the plurality of sets of encoded data slices; and

retrieve, wherein the second module identifies previous sets of slice names utilized to store the plurality of sets of encoded data slices based on a data ID of the data object to become co-located, issues one or more sets of read slice requests to a previously utilized set of storage units where the one or more sets of read slice requests includes the previous sets of slice names, and receiving the plurality of sets of encoded data slices.

15 . The DS module of claim 13 further comprises:

the third module, when operable within the computing device, further causes the computing device to:

generate the plurality of sets of slice names to produce co-located data objects with same vault identifier (ID), same generation field number, and similar object field numbers.

16 . The DS module of claim 13 further comprises:

the second module, when operable within the computing device, further causes the computing device to:

when obtaining the plurality of sets of encoded data slices, identify a set of execution units associated with the data ID of the data object to be co-located with, wherein the identifying includes:

accessing one or more of a directory and a dispersed hierarchical index to identify a memory address associated with a data ID of the data object to be co-located with; and performing an address-to-physical location table lookup to identify the set of execution units.

17 . The DS module of claim 13 further comprises:

the third module, when operable within the computing device, further causes the computing device to:

modify a vault ID of a first data identifier data of the object to co-locate to match a vault ID of a second data identifier of the data object to co-locate with; and

modify the object number fields of the first data identifier to be in a range of the object number fields of the second data identifier.

18 . The DS module of claim 13 further comprises:

a fifth module, when operable within the computing device, further causes the computing device to:

after storing the plurality of sets of encoded data slices in the memory, confirm storage of the plurality of sets of encoded data slices; and

after confirming, delete the plurality of sets of encoded data slices associated with the first data identifier.

19 . The DS module of claim 13 further comprises:

the fourth module, when operable within the computing device, further causes the computing device to:

store the plurality of sets of encoded data slices in the memory within a range of the memory addresses assigned to a common set of storage units within the memory.

20 . A method for execution within a dispersed storage network (DSN), the method comprises:

receiving a data object co-locate write request;

obtaining a plurality of sets of encoded data slices for a data object to co-locate including:

when the write request includes the data object to be co-located, encoding the included data object to produce a plurality of sets of encoded data slices; and

when the write request identifies a previously stored data object to be co-located, retrieving sets of encoded data slices of the previously stored data object;

generating a plurality of sets of slice names for the data object to co-locate based on another plurality of sets of slice names associated with a data object to be co-located with including:

generating co-located data objects have same vault identifier (ID), same generation field number, and object field numbers within a range of addresses assigned to a common set of storage units storing the plurality of sets of slice names associated with a data object to be co-located with; and

storing the plurality of sets of encoded data slices in the DSN using the generated plurality of sets of slice names for the data object to co-locate.

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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2014
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON; STORM, MICHAEL COLIN
To: CLEVERSAFE, INC.
Reel/Frame 033081/0680 →