IP Library Granted Patent US 8,832,493
Granted Patent B2
US 8,832,493 · App. 13/308,724 · Granted Sep 9, 2014

Storing directory metadata 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 8,832,493
App. No.
13/308,724
Granted
Sep 9, 2014
Kind
B2
Abstract

A method begins by a processing module dispersed storage error encoding data to produce encoded data slices and updating directory metadata regarding storing the data in a dispersed storage network (DSN) memory to produce updated directory metadata. The method continues with the processing module dispersed storage error encoding the updated directory metadata to produce encoded directory metadata slices and transmitting one or more data slice write requests to the DSN that each include a first transaction number. The method continues with the processing module transmitting one or more directory metadata write requests to the DSN memory, wherein the one or more directory metadata write requests includes a second transaction number, and when a favorable write response condition exists, transmitting a commit request to the DSN memory to commit storage of at least one of: the encoded data slices and the encoded directory metadata slices.

Claims (59)

1. A method comprises:

dispersed storage error encoding data to produce a plurality of sets of encoded data slices;

updating directory metadata regarding storing the data as the plurality of sets of encoded data slices in a dispersed storage network (DSN) memory to produce updated directory metadata;

dispersed storage error encoding the updated directory metadata to produce a plurality of sets of encoded directory metadata slices;

transmitting one or more data slice write requests to the DSN memory regarding storing the plurality of sets of encoded data slices, wherein the one or more data slice write requests includes a first transaction number;

transmitting one or more directory metadata write requests to the DSN memory regarding storing the plurality of sets of encoded directory metadata slices, wherein the one or more directory metadata write requests includes a second transaction number; and

when a favorable write response condition exists for both of the one or more data slice write requests and the one or more directory metadata write requests, transmitting one or more common commit requests to the DSN memory to commit storage of both of the plurality of sets of encoded data slices and the plurality of sets of encoded directory metadata slices, wherein the one or more common commit requests includes the first transaction number and the second transaction number.

2. The method of claim 1 , wherein the transmitting the one or more data slice write requests comprises:

generating a set of data slice write requests, wherein each of the data slice write requests includes the first transaction number regarding storage of a respective group of encoded data slices of the plurality of sets of encoded data slices; and

transmitting the set of data slice write requests to a set of dispersed storage (DS) units of the DSN memory.

3. The method of claim 1 , wherein the transmitting the one or more data slice write requests comprises:

generating a data slice write request, wherein the data slice write request includes the first transaction number regarding storage of the plurality of sets of encoded data slices; and

transmitting the set of data slice write requests to a set of dispersed storage (DS) units of the DSN memory, wherein a DS unit of the set of DS units is targeted to store a respective group of encoded data slices of the plurality of sets of encoded data slices.

4. The method of claim 1 , wherein the updating the directory metadata comprises:

retrieving the directory metadata from at least one of the DSN memory and a local memory;

determining a DSN memory storage location information for the plurality of sets of encoded data slices, wherein the DSN memory storage location information includes one or more of: a source name corresponding to a DSN memory storage location, a data size indicator, a data type indicator, snapshot information, a timestamp; and a segment allocation table; and

modifying the directory metadata to include a filename associated with the data and the DSN memory storage location to produce the updated directory metadata.

5. The method of claim 1 further comprises one or more of:

receiving at least a threshold number of data slices write responses regarding the one or more data slice write requests and generating a commit request as the one or more commit requests; and

receiving at least a threshold number of directory metadata write responses regarding the one or more directory metadata write requests and generating the commit request.

6. The method of claim 1 further comprises one or more of:

receiving at least a first threshold number of data slices write responses regarding writing a first set of encoded data slices of the plurality of sets of encoded data slices and generating a first commit request as one of the one or more commit requests;

receiving at least a first threshold number of directory metadata write responses regarding writing a first set of encoded directory metadata slices of the plurality of sets of encoded directory metadata slices and generating the first commit request; and

receiving at least a second threshold number of data slices write responses regarding writing a second set of encoded data slices of the plurality of sets of encoded data slices and generating a second commit request as a second one of the one or more commit requests.

7. The method of claim 1 , wherein the transmitting one or more common commit requests comprises one of:

generating a common commit request as the one or more common commit requests to include a common first transaction number and a common second transaction number regarding committing storage of the plurality of sets of encoded data slices and the plurality of sets of encoded directory metadata slices; and

generating a group of commit requests as the one or more common commit requests, wherein a commit request of the group of commit requests includes a unique first transaction number and a unique second transaction number regarding committing storage of a respective group of encoded data slices of the plurality of sets of encoded data slices.

8. A dispersed storage (DS) module comprises:

at least one memory;

a first module for dispersed storage error encoding data to produce a plurality of sets of encoded data slices;

a second module for:

updating directory metadata regarding storing the data as the plurality of sets of encoded data slices in a dispersed storage network (DSN) memory to produce updated directory metadata; and

dispersed storage error encoding the updated directory metadata to produce a plurality of sets of encoded directory metadata slices;

a third module for:

facilitating transmitting one or more data slice write requests to the DSN memory regarding storing the plurality of sets of encoded data slices, wherein the one or more data slice write requests includes a first transaction number; and

facilitating transmitting one or more directory metadata write requests to the DSN memory regarding storing the plurality of sets of encoded directory metadata slices, wherein the one or more directory metadata write requests includes a second transaction number; and

a fourth module for transmitting one or more common commit requests to the DSN memory, when a favorable write response condition exists, for both of the one or more data slice write requests and the one or more directory metadata write requests, to commit storage of both of the plurality of sets of encoded data slices and the plurality of sets of encoded directory metadata slices, wherein the common commit request includes the first transaction number and the second transaction number.

9. The DS module of claim 8 , wherein the third module is operable to transmit the one or more data slice write requests by:

generating a set of data slice write requests, wherein each of the data slice write requests includes the first transaction number regarding storage of a respective group of encoded data slices of the plurality of sets of encoded data slices; and

transmitting the set of data slice write requests to a set of dispersed storage (DS) units of the DSN memory.

10. The DS module of claim 8 , wherein the third module is further operable to transmit the one or more data slice write requests by:

generating a data slice write request, wherein the data slice write request includes the first transaction number regarding storage of the plurality of sets of encoded data slices; and

transmitting the set of data slice write requests to a set of dispersed storage (DS) units of the DSN memory, wherein a DS unit of the set of DS units is targeted to store a respective group of encoded data slices of the plurality of sets of encoded data slices.

11. The DS module of claim 8 , wherein the second module is operable to update the directory metadata by:

retrieving the directory metadata from at least one of the DSN memory and a local memory;

determining a DSN memory storage location information for the plurality of sets of encoded data slices, wherein the DSN memory storage location information includes one or more of: a source name corresponding to a DSN memory storage location, a data size indicator, a data type indicator, snapshot information, a timestamp; and a segment allocation table; and

modifying the directory metadata to include a filename associated with the data and the DSN memory storage location to produce the updated directory metadata.

12. The DS module of claim 8 further comprises:

a fifth module for at least one of:

receiving at least a threshold number of data slices write responses regarding the one or more data slice write requests and generating a commit request as the one or more commit requests; and

receiving at least a threshold number of directory metadata write responses regarding the one or more directory metadata write requests and generating the commit request.

13. The DS module of claim 8 further comprises:

a fifth module for at least one of:

receiving at least a first threshold number of data slices write responses regarding writing a first set of encoded data slices of the plurality of sets of encoded data slices and generating a first commit request as one of the one or more commit requests;

receiving at least a first threshold number of directory metadata write responses regarding writing a first set of encoded directory metadata slices of the plurality of sets of encoded directory metadata slices and generating the first commit request; and

receiving at least a second threshold number of data slices write responses regarding writing a second set of encoded data slices of the plurality of sets of encoded data slices and generating a second commit request as a second one of the one or more commit requests.

14. The DS module of claim 8 , wherein the fourth module is operable to transmit one or more common commit requests by one of:

generating a common commit request as the one or more common commit requests to include a common first transaction number and a common second transaction number regarding committing storage of the plurality of sets of encoded data slices and the plurality of sets of encoded directory metadata slices; and

generating a group of commit requests as the one or more common commit requests, wherein a commit request of the group of commit requests includes a unique first transaction number and a unique second transaction number regarding committing storage of a respective group of encoded data slices of the plurality of sets of encoded data slices.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2011
From: VOLVOVSKI, ILYA; BAPTIST, ANDREW; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 027372/0535 →