IP Library Granted Patent US 11,157,187
Granted Patent B2
US 11,157,187 · App. 16/885,788 · Granted Oct 26, 2021

Method, device, and computer program product for overwriting data

Inventors: Leihu Zhang (Beijing, CN); Chen Gong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/064G06F3/0608G06F3/0613G06F3/0653G06F3/0659G06F3/0673
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 11,157,187
App. No.
16/885,788
Granted
Oct 26, 2021
Kind
B2
Abstract

Data overwriting techniques involve: comparing, based on a request for overwriting target data in a storage area to cover original data, a first compression ratio with a second compression ratio; in accordance with a determination that the first compression ratio is larger, compressing the target data into fragments at the first compression ratio; storing the fragments in segments in the storage area, the segments being previously used for storing corresponding fragments of the original data; and storing at least one padding data fragment in at least one free segment interleaved with the segments and/or free sectors in the segments. Accordingly, the overwritten data can be stored in the storage area in a continuous manner, while the write alignment requirement of the storage device can be satisfied, thereby saving the additional read overheads incurred by the write request and enhancing the write performance of the storage device.

Claims (79)

1. A method for overwriting data, comprising:

comparing, based on a request for overwriting target data in a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data;

in accordance with a determination that the first compression ratio is larger than the second compression ratio, compressing the target data into a plurality of data fragments at the first compression ratio;

storing the plurality of data fragments in a plurality of overwriting segments in the storage area, the plurality of overwriting segments being previously used for storing corresponding fragments of the original data; and

storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments,

wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments comprises:

(1) determining candidate padding segments of the storage area;

(2) determining, from the determined candidate padding segments, the at least one free segment and the free sectors based on locations of sectors storing the plurality of data fragments in the overwriting segments; and

(3) storing the padding data fragments in at least one of the at least one free segment and the free sectors,

and wherein storing the padding data fragments in at least one of the at least one free segment and the free sectors comprises:

(1) determining a ratio of a number of the at least one free segment to a number of the candidate padding segments;

(2) comparing the ratio with a predetermined threshold; and

(3) in accordance with a determination that the ratio does not exceed the predetermined threshold, storing the padding data fragments in at least one of the at least one free segment and the free sectors.

2. The method of claim 1 , wherein determining candidate padding segments of the storage area comprises:

generating a first bitmap indicative of writability of a segment in the storage area;

determining, based on the first bitmap, an unwritable segment of the storage area; and

determining segments except for the unwritable segment of the storage area as the candidate padding segments.

3. The method of claim 1 , wherein determining the at least one free segment and the free sectors comprises:

generating a second bitmap indicative of overwritability of a sector in the candidate padding segments;

determining, based on the second bitmap, sectors where the data fragments are stored;

determining sectors except for the sectors where the data fragments are stored in the overwriting segments as the free sectors; and

determining segments except for the overwriting segments in the candidate padding segments as the at least one free segment.

4. The method of claim 1 , wherein the at least one free segment interleaved with the plurality of overwriting segments is positioned between a starting overwriting segment and an ending overwriting segment of the plurality of overwriting segments.

5. The method of claim 1 , wherein the storage area is divided into a plurality of segments based on a starting sector index and a segment length of the storage area.

6. The method of claim 1 , wherein the padding data fragments are different from the data fragments.

7. The method of claim 1 , wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments or free sectors in the plurality of overwriting segments comprises: storing the at least one padding data fragment in the at least one free segment between the starting overwriting segment and the ending overwriting segment of the plurality of overwriting segments and/or in the free sectors of the plurality of overwriting segments, such that the plurality of data fragments are continuous.

8. A device for storing data, comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and having instructions to be executed by the at least one processing unit stored thereon, the instructions, when executed by the at least one processing unit, causing the device to perform acts comprising:

comparing, based on a request for overwriting target data in a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data;

in accordance with a determination that the first compression ratio is larger than the second compression ratio, compressing the target data into a plurality of data fragments at the first compression ratio;

storing the plurality of data fragments in a plurality of overwriting segments in the storage area, the plurality of overwriting segments being previously used for storing corresponding fragments of the original data; and

storing at least one padding data fragment in at least one free sector interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments,

wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments comprises:

(1) determining candidate padding segments of the storage area;

(2) determining, from the determined candidate padding segments, the at least one free segment and the free sectors based on locations of sectors storing the plurality of data fragments in the overwriting segments; and

(3) storing the padding data fragments in at least one of the at least one free segment and the free sectors,

and wherein storing the padding data fragments in at least one of the at least one free segment and the free sectors comprises:

(1) determining a ratio of a number of the at least one free segment to a number of the candidate padding segments;

(2) comparing the ratio with a predetermined threshold; and

(3) in accordance with a determination that the ratio does not exceed the predetermined threshold, storing the padding data fragments in at least one of the at least one free segment and the free sectors.

9. The device of claim 8 , wherein determining candidate padding segments of the storage area comprises:

generating a first bitmap indicative of writability of a segment in the storage area;

determining, based on the first bitmap, an unwritable segment of the storage area; and

determining segments except for the unwritable segment of the storage area as the candidate padding segments.

10. The device of claim 8 , wherein determining the at least one free segment and the free sectors comprises:

generating a second bitmap indicative of overwritability of a sector in the candidate padding segments;

determining, based on the second bitmap, sectors where the data fragments are stored;

determining sectors except for the sectors where the data fragments are stored in the overwriting segments as the free sectors; and

determining segments except for the overwriting segments in the candidate padding segments as the at least one free segment.

11. The device of claim 8 , wherein the at least one free segment interleaved with the plurality of overwriting segments is positioned between a starting overwriting segment and an ending overwriting segment of the plurality of overwriting segments.

12. The device of claim 8 , wherein the storage area is divided into a plurality of segments based on a starting sector index and a segment length of the storage area.

13. The device of claim 8 , wherein the padding data fragments are different from the data fragments.

14. The device of claim 8 , wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments or free sectors in the plurality of overwriting segments comprises: storing the at least one padding data fragment in the at least one free segment between the starting overwriting segment and the ending overwriting segment of the plurality of overwriting segments and/or in the free sectors of the plurality of overwriting segments, such that the plurality of data fragments are continuous.

15. A computer program product having a non-transitory computer readable medium which stores a set of instructions to overwrite data; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

comparing, based on a request for overwriting target data in a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data;

in accordance with a determination that the first compression ratio is larger than the second compression ratio, compressing the target data into a plurality of data fragments at the first compression ratio;

storing the plurality of data fragments in a plurality of overwriting segments in the storage area, the plurality of overwriting segments being previously used for storing corresponding fragments of the original data; and

storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments,

wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments and/or free sectors in the plurality of overwriting segments comprises:

(1) determining candidate padding segments of the storage area;

(2) determining, from the determined candidate padding segments, the at least one free segment and the free sectors based on locations of sectors storing the plurality of data fragments in the overwriting segments; and

(3) storing the padding data fragments in at least one of the at least one free segment and the free sectors,

and wherein storing the padding data fragments in at least one of the at least one free segment and the free sectors comprises:

(1) determining a ratio of a number of the at least one free segment to a number of the candidate padding segments;

(2) comparing the ratio with a predetermined threshold; and

(3) in accordance with a determination that the ratio does not exceed the predetermined threshold, storing the padding data fragments in at least one of the at least one free segment and the free sectors.

16. The computer program product of claim 15 , wherein determining candidate padding segments of the storage area comprises:

generating a first bitmap indicative of writability of a segment in the storage area;

determining, based on the first bitmap, an unwritable segment of the storage area; and

determining segments except for the unwritable segment of the storage area as the candidate padding segments.

17. The computer program product of claim 15 , wherein determining the at least one free segment and the free sectors comprises:

generating a second bitmap indicative of overwritability of a sector in the candidate padding segments;

determining, based on the second bitmap, sectors where the data fragments are stored;

determining sectors except for the sectors where the data fragments are stored in the overwriting segments as the free sectors; and

determining segments except for the overwriting segments in the candidate padding segments as the at least one free segment.

18. The computer program product of claim 15 , wherein the at least one free segment interleaved with the plurality of overwriting segments is positioned between a starting overwriting segment and an ending overwriting segment of the plurality of overwriting segments.

19. The computer program product of claim 15 , wherein the storage area is divided into a plurality of segments based on a starting sector index and a segment length of the storage area.

20. The computer program product of claim 15 , wherein storing at least one padding data fragment in at least one free segment interleaved with the plurality of overwriting segments or free sectors in the plurality of overwriting segments comprises: storing the at least one padding data fragment in the at least one free segment between the starting overwriting segment and the ending overwriting segment of the plurality of overwriting segments and/or in the free sectors of the plurality of overwriting segments, such that the plurality of data fragments are continuous.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: ZHANG, LEIHU; GONG, CHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053045/0629 →
Priority Claims (1)
CN 201911002580.7 · Oct 21, 2019 · national
Continuity (1)
Related Publication 20210117090A1 · Apr 22, 2021
Cited By (1)
US 12,487,747