IP Library › Granted Patent US 10,853,257
Granted Patent B1
US 10,853,257 · App. 15/192,212 · Granted Dec 1, 2020

Zero detection within sub-track compression domains

Inventors: Rong Yu (West Roxbury, MA); Jeremy J. O'Hare (Westborough, MA); Anoop Raghunathan (Ashland, MA); Ning Wu (Northborough, MA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0893G06F3/0619G06F3/0631G06F3/0683G06F2212/6042
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,853,257
App. No.
15/192,212
Filed
Jun 24, 2016
Granted
Dec 1, 2020
Kind
B1
Art Unit
2135
USPC
711/118
Abstract

Allocation of physical storage capacity within a storage array may be managed in standard size allocation units, e.g. 128 kb tracks, and smaller sub-allocation units, e.g. 32 kb quarter tracks. Data associated with sub-allocation units that match a known pattern may be represented by a hint rather than data in storage. The hint may be used to mitigate overhead associated with accessing backend storage. The hint may also mitigate the need for performing compression/decompression of the corresponding sub-allocation unit if the data is compressed. In response to a read or write request associated with an allocation unit organized into sub-allocation units, only those sub-allocation units that are required to service the read or write request and fail to match a pattern are accessed, decompressed or compressed.

Claims (41)

1. An apparatus comprising:

a block-based storage array that presents a logical volume of storage to a host application, the logical volume of storage having contiguous logical block addresses, the storage array comprising:

a plurality of tangible data storage drives;

metadata that maps the contiguous logical block addresses to a non-contiguous physical address set on the tangible data storage drives; and

a computing node comprising a processor and a cache, the computing node using only a single fixed-size allocation unit of storage capacity in commands to read and write uncompressed data from and to the data storage drives, wherein the single fixed-size allocation unit is larger than a smallest size unit of storage capacity that the tangible data storage drives can process, wherein the computing node is responsive to commands from the host application to access logical blocks of the production volume to use the metadata to access corresponding physical addresses of the tangible data storage drives, and wherein the computing node:

causes a first fixed-size allocation unit of production volume data to be stored on the tangible data storage drives;

reorganizes the first fixed-size allocation unit into a plurality of same-size sub-allocation units that are smaller in size than the first fixed-size allocation unit and larger than the smallest size unit of storage capacity that the tangible data storage drives can process, each sub-allocation unit being a separate compression domain that defines which data is interdependently compressed and de-compressed;

determines that a first sub-allocation unit of the plurality of sub-allocation units matches a known pattern;

represents the first sub-allocation unit with a first pattern identifier;

determines that a second sub-allocation unit of the plurality of sub-allocation units does not match the known pattern;

causes the second sub-allocation unit to be stored on the tangible data storage drives; and

responsive to a read from the host application, generates the first sub-allocation unit in the cache using the pattern identifier without accessing the data storage drives and without decompressing the first sub-allocation unit.

2. The apparatus of claim 1 comprising a hint field associated with the first fixed-size allocation unit, the hint field comprising a first location hint indicative of location of the second sub-allocation unit on the tangible storage drives.

3. The apparatus of claim 2 wherein the hint field further comprises the first pattern identifier.

4. The apparatus of claim 3 wherein the computing node, in response to a request to read the first sub-allocation unit, uses the first pattern identifier to generate the first sub-allocation unit in the cache.

5. The apparatus of claim 4 wherein the first pattern identifier is indicative of all 0 values.

6. The apparatus of claim 1 further comprising a record of a plurality of known patterns, the record being maintained in the cache.

7. The apparatus of claim 6 wherein the computing node, in response to a request to read the first sub-allocation unit, uses the first pattern identifier with the record of known patterns to generate the first sub-allocation unit in the cache.

8. The apparatus of claim 6 wherein the computing node, in response to a request to write to the second sub-allocation unit, determines that the second sub-allocation unit will match one of the known patterns as a result of the write, and represents the second sub-allocation unit with a second pattern identifier.

9. The apparatus of claim 1 wherein the computing node, in response to a request to write to the second sub-allocation unit, determines that the second sub-allocation unit will match the known pattern as a result of the write, and represents the second sub-allocation unit with the first pattern identifier.

10. The apparatus of claim 9 wherein the computing node determines that all of the sub-allocation units are represented by pattern identifiers and, in response, de-allocates space on the tangible storage drives allocated to the allocation unit.

11. A method comprising:

with a block-based storage array comprising a plurality of tangible data storage drives and a computing node comprising a processor and a cache, wherein the computing node uses only a single fixed-size allocation unit of storage capacity in commands to read and write uncompressed data from and to the data storage drives, wherein the single fixed-size allocation unit is larger than a smallest size unit of storage capacity that the tangible data storage drives can process:

presenting a production volume to a host application, the production volume having contiguous logical block addresses mapped by metadata to a non-contiguous physical address set on the tangible data storage drives;

responsive to commands from a host application, accessing blocks of the production volume by using the metadata to access corresponding physical addresses of the tangible data storage drives;

causing a first fixed-size allocation unit of production volume data to be stored on the tangible data storage drives;

reorganizing the first fixed-size allocation unit into a plurality of same-size sub-allocation units that are smaller in size than the first fixed-size allocation unit and larger than the smallest size unit of storage capacity that the tangible data storage drives can process, each sub-allocation unit being a separate compression domain that defines which data is interdependently compressed and de-compressed;

determining that a first sub-allocation unit of the plurality of sub-allocation units matches a known pattern;

representing the first sub-allocation unit with a first pattern identifier;

determining that a second sub-allocation unit of the plurality of sub-allocation units does not match the known pattern;

causing the second sub-allocation unit to be stored on the tangible data storage drives; and

responsive to a read, generating the first sub-allocation unit in the cache using the pattern identifier without accessing the data storage drives and without decompressing the first sub-allocation unit.

12. The method of claim 11 comprising associating a hint field with the first fixed-size allocation unit, the hint field comprising a first location hint indicative of location of the second sub-allocation unit on the tangible storage drives.

13. The method of claim 12 comprising adding the first pattern identifier to the hint field.

14. The method of claim 13 comprising the computing node, in response to a request to read the first sub-allocation unit, using the first pattern identifier to generate the first sub-allocation unit in the cache.

15. The method of claim 14 comprising interpreting the first pattern identifier as indicative of all 0 values.

16. The method of claim 11 further comprising maintaining a record of a plurality of known patterns, the record being maintained in the cache.

17. The method of claim 16 comprising the computing node, in response to a request to read the first sub-allocation unit, using the first pattern identifier with the record of known patterns to generate the first sub-allocation unit in the cache.

18. The method of claim 16 comprising the computing node, in response to a request to write to the second sub-allocation unit, determining that the second sub-allocation unit will match one of the known patterns as a result of the write, and representing the second sub-allocation unit with a second pattern identifier.

19. The method of claim 11 comprising the computing node, in response to a request to write to the second sub-allocation unit, determining that the second sub-allocation unit will match the known pattern as a result of the write, and representing the second sub-allocation unit with the first pattern identifier.

20. The method of claim 19 comprising the computing node determining that all of the sub-allocation units are represented by pattern identifiers and, in response, de-allocating space on the tangible storage drives allocated to the allocation unit.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2016
From: YU, RONG; O'HARE, JEREMY J.; RAGHUNATHAN, ANOOP; WU, NING
To: EMC CORPORATION
Reel/Frame 039005/0681 →
Cited By (2)
US 12,675,437 US 12,693,975