IP Library Granted Patent US 9,521,197
Granted Patent B2
US 9,521,197 · App. 14/056,015 · Granted Dec 13, 2016

Utilizing data object storage tracking 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 9,521,197
App. No.
14/056,015
Granted
Dec 13, 2016
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module dividing a very large data object into a plurality of data regions and generating a data object storage tracking table that includes sections for identifying one or more data regions that are available or unavailable for retrieval. The method continues with the DS processing module dividing a first data region into data segments and disperse storage error encoding the data segments to produce sets of encoded data slices. The method continues with the DS processing module sending DSN write requests regarding storing the sets of encoded data slices to storage units and when at least a write threshold number of write responses is received for each of the sets of encoded data slices, updating the data object storage tracking table to indicate that the first data region is available for retrieval.

Claims (54)

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 write request regarding a very large data object;

determining whether the write request is an initial write request for the very large data object or a subsequent write request for editing the very large data object; and

when the write request is the initial write request:

dividing the very large data object into a plurality of data regions;

generating a data object storage tracking table that includes a section for identifying, if any, one or more data regions of the plurality of data regions that are available for retrieval and another section for identifying, if any, one or more other data regions of the plurality of data regions that are unavailable for retrieval; and

for a first data region of the plurality of data regions:

dividing the first data region of the plurality of data regions into a plurality of data segments;

disperse storage error encoding the plurality of data segments to produce a plurality of sets of encoded data slices;

sending DSN write requests regarding storing the plurality of sets of encoded data slices to storage units of the DSN; and

when at least a write threshold number of write responses is received for each of the plurality of sets of encoded data slices, updating the data object storage tracking table to indicate that the first data region is available for retrieval.

2. The method of claim 1 , wherein the determining whether the write request is the initial write request for the very large data object or the subsequent write request for editing the very large data object comprises at least one of:

retrieving an indication from the write request; and

searching for the data object storage tracking table and, when the data object storage tracking table is not found, indicating that the write request is the initial write request.

3. The method of claim 1 further comprises:

for a second data region of the plurality of data regions:

dividing the second data region of the plurality of data regions into a plurality of data segments of the second data region;

disperse storage error encoding the plurality of data segments of the second data region to produce a second plurality of sets of encoded data slices;

sending second DSN write requests regarding storing the second plurality of sets of encoded data slices to the storage units; and

when at least a write threshold number of second write responses is received for each of the second plurality of sets of encoded data slices, updating the data object storage tracking table to indicate that the second data region is available.

4. The method of claim 1 further comprises:

generating a transaction number for writing the one or more data regions of the plurality of data regions to the storage units; and

when the transaction number includes at least two data regions of the plurality of data regions:

for a first one of the at least two data regions:

dividing the first one of the at least two data regions into the plurality of data segments of the first one of the at least two data regions; and

disperse storage error encoding the plurality of data segments of the first one of the at least two data regions to produce a first plurality of sets of encoded data slices;

for a second one of the at least two data regions:

dividing the second one of the at least two data regions into a plurality of data segments of the second one of the at least two data regions; and

disperse storage error encoding the plurality of data segments of the second one of the at least two data regions to produce a second plurality of sets of encoded data slices;

sending the DSN write requests, which include the transaction number, regarding storing the first and second plurality of sets of encoded data slices to the storage units; and

when the at least a write threshold number of write responses is received for each of the first and second plurality of sets of encoded data slices, updating the data object storage tracking table to indicate that the first one and the second one of the at least two data regions are available.

5. The method of claim 1 further comprises:

when the write request is for the editing the very large data object:

identifying one of the plurality of data regions being edited based on the write request;

updating the data object storage tracking table to indicate that the one of the plurality of data regions is unavailable;

disperse storage error encoding one or more edited data segments of a plurality of data segments of the one of the plurality of data regions to produce one or more sets of edited encoded data slices;

sending updated DSN write requests regarding storing the one or more sets of edited encoded data slices to the storage units; and

when the at least a write threshold number of write responses is received for each of the one or more sets of edited encoded data slices, updating the data object storage tracking table to indicate that the one of the plurality of data regions is available.

6. The method of claim 1 further comprises:

generating a mapping of the plurality of data regions for the very large data object; and

storing the mapping in at least one of: local memory of at least one computing device of the one or more computing devices and as a set of encoded mapping slices in at least some of the storage units.

7. The method of claim 1 further comprises:

disperse storage error encoding the data object storage tracking table to produce a set of encoded table slices; and

writing the set of encoded table slices to at least some of the storage units for storage therein.

8. The method of claim 7 further comprises:

when the data object storage tracking table is to be updated:

retrieving at least a decode threshold number of encoded table slices of the set of encoded table slices;

decoding the at least a decode threshold number of encoded table slices to recapture the data object storage tracking table;

updating the data object storage tracking table to produce an updated data object storage tracking table;

dispersed storage error encoding the updated data object storage tracking table to produce a set of updated encoded table slices; and

writing the set of updated encoded table slices to the at least some of the storage units for storage therein.

9. The method of claim 1 , wherein the editing the very large data object comprises one of:

revising one or more of the plurality of data regions; and

deleting the one or more of the plurality of data regions.

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 Jan 3, 2014
From: LEGGETTE, WESLEY; RESCH, JASON K.; VEDPATHAK, YOGESH RAMESH; VAS, SEBASTIEN; SMITH, ERIC GUNNAR; GRAY, ADAM MICHAEL
To: CLEVERSAFE, INC.
Reel/Frame 031890/0693 →