IP Library Granted Patent US 9,354,972
Granted Patent B2
US 9,354,972 · App. 14/953,579 · Granted May 31, 2016

Efficiently storing data 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,354,972
App. No.
14/953,579
Granted
May 31, 2016
Kind
B2
Abstract

A method includes determining that one or more data blocks of a permanently stored data blocks are to be deleted. In response, the method further includes obtaining a group of partial redundancy data for the permanently stored data blocks. The method further includes identifying a temporarily stored plurality of data blocks for which partial redundancy data does not yet exist. The method further includes creating a new plurality of data blocks from data blocks of the permanently stored plurality of data blocks that are to remain permanently stored and data blocks from the temporarily stored plurality of data blocks that are to be permanently stored. The method further includes permanently storing the new plurality of data blocks. The method further includes generating a new group of partial redundancy data. The method further includes sending the new group of partial redundancy data and the group of partial redundancy data.

Claims (45)

1. A method for execution by a dispersed storage (DS) unit of a dispersed storage network (DSN), the method comprises:

determining that one or more data blocks of a permanently stored plurality of data blocks are to be deleted; and

in response to the determining that the one or more data blocks are to be deleted:

obtaining a group of partial redundancy data for the permanently stored plurality of data blocks;

identifying a temporarily stored plurality of data blocks for which partial redundancy data does not yet exist;

creating a new plurality of data blocks from data blocks of the permanently stored plurality of data blocks that are to remain permanently stored and data blocks from the temporarily stored plurality of data blocks that are to be permanently stored;

permanently storing the new plurality of data blocks;

generating a new group of partial redundancy data based on the new plurality of data blocks and in accordance with a dispersed storage error coding function; and

sending the new group of partial redundancy data and the group of partial redundancy data such that redundancy data DS units are able to generate redundancy data regarding the new plurality of data blocks.

2. The method of claim 1 , wherein the determining that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted comprises:

determining that at least one other DS unit of a set of DS units is storing data blocks that are substantially similar to the one or more data blocks; and

in response to the determining that the at least one other DS unit is storing data blocks that are substantially similar to the one or more data blocks:

determining whether a de-duplication function is to be applied to the one or more data blocks;

when the de-duplication function is to be applied, determining that the one or more data blocks are to be deleted; and

when the de-duplication function is not to be applied, determining that the one or more data blocks are not to be deleted.

3. The method of claim 1 , wherein the determining that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted comprises:

analyzing the permanently stored plurality of data blocks in accordance with data analysis criteria; and

when the analysis of the permanently stored plurality of data blocks is unfavorable, determining that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted.

4. The method of claim 1 , wherein the generating the new group of partial redundancy data based on the new plurality of data blocks comprises:

generating a first partial redundancy data for a first redundancy DS unit based on at least some of the new plurality of data blocks and a first encoding parameter of the dispersed storage error coding function; and

generating a second partial redundancy data for a second redundancy DS unit based on at least another some of the new plurality of data blocks and a second encoding parameter of the dispersed storage error coding function.

5. A dispersed storage (DS) module of a dispersed storage (DS) unit of a dispersed storage network (DSN), the DS module comprises:

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

determine that one or more data blocks of a permanently stored plurality of data blocks are to be deleted;

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

in response to the determining that the one or more data blocks are to be deleted:

obtain a group of partial redundancy data for the permanently stored plurality of data blocks;

identify a temporarily stored plurality of data blocks for which partial redundancy data does not yet exist;

create a new plurality of data blocks from data blocks of the permanently stored plurality of data blocks that are to remain permanently stored and data blocks from the temporarily stored plurality of data blocks that are to be permanently stored; and

permanently store the new plurality of data blocks; and

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

generate a new group of partial redundancy data based on the new plurality of data blocks and in accordance with a dispersed storage error coding function; and

send the new group of partial redundancy data and the group of partial redundancy data such that redundancy data DS units are able to generate redundancy data regarding the new plurality of data blocks.

6. The DS module of claim 5 , wherein the first module functions to determine that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted by:

determining that at least one other DS unit of a set of DS units is storing data blocks that are substantially similar to the one or more data blocks; and

in response to the determining that the at least one other DS unit is storing data blocks that are substantially similar to the one or more data blocks:

determining whether a de-duplication function is to be applied to the one or more data blocks;

when the de-duplication function is to be applied, determining that the one or more data blocks are to be deleted; and

when the de-duplication function is not to be applied, determining that the one or more data blocks are not to be deleted.

7. The DS module of claim 5 , wherein the first module functions to determine that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted by:

analyzing the permanently stored plurality of data blocks in accordance with data analysis criteria; and

when the analysis of the permanently stored plurality of data blocks is unfavorable, determining that the one or more data blocks of the permanently stored plurality of data blocks are to be deleted.

8. The DS module of claim 5 , wherein the third module functions to generate the new group of partial redundancy data based on the new plurality of data blocks by:

generating a first partial redundancy data for a first redundancy DS unit based on at least some of the new plurality of data blocks and a first encoding parameter of the dispersed storage error coding function; and

generating a second partial redundancy data for a second redundancy DS unit based on at least another some of the new plurality of data blocks and a second encoding parameter of the dispersed storage error coding function.

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 Feb 25, 2016
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 037831/0704 →