IP Library Granted Patent US 10,334,046
Granted Patent B2
US 10,334,046 · App. 15/216,494 · Granted Jun 25, 2019

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 10,334,046
App. No.
15/216,494
Granted
Jun 25, 2019
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 (62)

1. A dispersed storage (DS) unit of a dispersed storage network (DSN) comprises:

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

receive a write request regarding a very large data object; and

determine 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

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

when the write request is the initial write request:

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

generate 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:

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

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

send 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, update the data object storage tracking table to indicate that the first data region is available for retrieval.

2. The DS unit of claim 1 , wherein the first module functions to determine 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 by 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 DS unit of claim 1 further comprises:

the second module further functions to cause the computing device to:

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

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

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

send 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, update the data object storage tracking table to indicate that the second data region is available.

4. The DS unit of claim 1 further comprises:

the second module further functions to cause the computing device to:

generate 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:

divide 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 encode 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:

divide 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 encode 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;

send 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, update 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 DS unit of claim 1 further comprises:

the second module further functions to cause the computing device to:

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

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

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

disperse storage error encode 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;

send 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, update the data object storage tracking table to indicate that the one of the plurality of data regions is available.

6. The DS unit of claim 1 further comprises:

the second module further functions to cause the computing device to:

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

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

7. The DS unit of claim 1 further comprises:

the second module further functions to cause the computing device to:

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

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

8. The DS unit of claim 7 further comprises:

the second module further functions to cause the computing device to:

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

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

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

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

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

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

9. The DS unit of claim 1 , wherein the second module further functions to edit the very large data object by 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: LEGGETTE, WESLEY; RESCH, JASON K.; VEDPATHAK, YOGESH R.; VAS, SEBASTIEN; SMITH, ERIC GUNNAR; GRAY, ADAM MICHAEL
To: CLEVERSAFE, INC.
Reel/Frame 041119/0385 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041119/0696 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041551/0564 →