# US 9,521,197 B2 · Utilizing data object storage tracking in a dispersed storage network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,197 B2
- Document ID: US9521197B2
- Status: Granted
- Kind: B2
- Application number: 14/056,015
- Filed: 2013-10-17
- Published: 2014-06-05
- Granted: 2016-12-13
- Earliest claimed: 2012-12-05
- Assignees: International Business Machines Corporation
- Applicants: Cleversafe, Inc.
- Inventors: Wesley Leggette; Jason K. Resch; Yogesh Ramesh Vedpathak; Sebastien Vas; Eric Gunnar Smith; Adam Michael Gray
- Web page: https://patentgrep.com/patent/US9521197B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0683: {Plurality of storage devices}
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 2211/1028: Distributed, i.e. distributed RAID systems with parity
- G06F 2212/1044: Space efficiency improvement
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 7)

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.

### Claim 9 (depends on 1)

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.
