IP Library Granted Patent US 10,990,479
Granted Patent B2
US 10,990,479 · App. 16/826,511 · Granted Apr 27, 2021

Efficient packing of compressed data in storage system implementing data striping

Inventors: Zvi Schneider (Tel Aviv, IL); Marcelo Taube (Tel Aviv, IL); Lior Kamran (Rishon LeZion, IL); Alex Soukhman (Raanana, IL); David Krakov (Ramat Gan, IL)
Assignee: EMC IP Holding Company LLC
G06F11/108G06F3/061G06F3/064G06F3/0608G06F3/0664G06F3/0689H04L69/04G06F2211/1057
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,990,479
App. No.
16/826,511
Granted
Apr 27, 2021
Kind
B2
Abstract

An apparatus comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured to select a stripe column size for stripes of a data storage system, to determine a first compress block size for a first one of the stripes based on compressibility of data to be stored, to select a first prime number for computing parity blocks for the first stripe and a first number of sub-stripes for splitting stripe columns of the first stripe, to generate metadata specifying the first compress block size, the first prime number and the first number of sub-stripes for the first stripe, and to store data compressed using the first compress block size in the first stripe. The first prime number and first number of sub-stripes for the first stripe is different than a second prime number and second number of sub-stripes for a second stripe.

Claims (38)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the processing device being configured:

to utilize a first compress block size for compressing first data stored in a first one of a plurality of stripes of a storage system implementing data striping across a plurality of storage devices; and

to utilize a second compress block size different than the first block size for compressing second data stored in a second one of the plurality of stripes;

wherein the first stripe and the second stripe utilize a common stripe column size;

wherein the first stripe splits the common stripe column size into a first number of rows based at least in part on the first compress block size; and

wherein the second stripe splits the common stripe column size into a second number of rows different than the first number of rows based at least in part on the second compress block size.

2. The apparatus of claim 1 wherein the storage system comprises a Redundant Array of Independent Disks (RAID) storage system.

3. The apparatus of claim 2 wherein a number of data disks in the RAID storage system comprises a prime number k, and wherein a column of the RAID storage system comprises k−1 blocks.

4. The apparatus of claim 2 wherein the plurality of storage devices comprise solid state drives (SSDs).

5. The apparatus of claim 2 wherein the RAID storage system implements RAID 6 with the number of data disks being k and the number of parity disks being n, where n is greater than one.

6. The apparatus of claim 1 wherein the common stripe column size comprises a multiple of a designated block size.

7. The apparatus of claim 6 wherein at least one of the first compress block size and the second compress block size divides the designated block size with remainder.

8. The apparatus of claim 6 wherein the multiple of the designated block size comprises a (P−1) multiple of the designated block size where P is a prime number, and wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe, the first prime number being different than P.

9. The apparatus of claim 8 wherein when the first prime number is greater than a number of the plurality of storage devices in the storage system storing data blocks for the first stripe, parity blocks are computed utilizing a set of virtual storage devices that store pages with a designated predetermined value.

10. The apparatus of claim 9 wherein the designated predetermined value is zero.

11. The apparatus of claim 9 wherein a number of virtual storage devices in the set is equal to a difference between the first prime number and the number of storage devices in the storage system storing data blocks.

12. The apparatus of claim 1 wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe and the first number of rows comprises one less than the first prime number, and wherein the second compress block size is associated with a second prime number for computing parity blocks for the second stripe and the second number of rows comprises one less than the second prime number.

13. A method comprising:

utilizing a first compress block size for compressing first data stored in a first one of a plurality of stripes of a storage system implementing data striping across a plurality of storage devices; and

utilizing a second compress block size different than the first block size for compressing second data stored in a second one of the plurality of stripes;

wherein the first stripe and the second stripe utilize a common stripe column size;

wherein the first stripe splits the common stripe column size into a first number of rows based at least in part on the first compress block size;

wherein the second stripe splits the common stripe column size into a second number of rows different than the first number of rows based at least in part on the second compress block size; and

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

14. The method of claim 13 wherein the common stripe column size comprises a multiple of a designated block size, and wherein at least one of the first compress block size and the second compress block size divides the designated block size with remainder.

15. The method of claim 14 wherein the multiple of the designated block size comprises a (P−1) multiple of the designated block size where P is a prime number, and wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe, the first prime number being different than P.

16. The method of claim 13 wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe and the first number of rows comprises one less than the first prime number, and wherein the second compress block size is associated with a second prime number for computing parity blocks for the second stripe and the second number of rows comprises one less than the second prime number.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

to utilize a first compress block size for compressing first data stored in a first one of a plurality of stripes of a storage system implementing data striping across a plurality of storage devices; and

to utilize a second compress block size different than the first block size for compressing second data stored in a second one of the plurality of stripes;

wherein the first stripe and the second stripe utilize a common stripe column size;

wherein the first stripe splits the common stripe column size into a first number of rows based at least in part on the first compress block size; and

wherein the second stripe splits the common stripe column size into a second number of rows different than the first number of rows based at least in part on the second compress block size.

18. The computer program product of claim 17 wherein the common stripe column size comprises a multiple of a designated block size, and wherein at least one of the first compress block size and the second compress block size divides the designated block size with remainder.

19. The computer program product of claim 18 wherein the multiple of the designated block size comprises a (P−1) multiple of the designated block size where P is a prime number, and wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe, the first prime number being different than P.

20. The computer program product of claim 17 wherein the first compress block size is associated with a first prime number for computing parity blocks for the first stripe and the first number of rows comprises one less than the first prime number, and wherein the second compress block size is associated with a second prime number for computing parity blocks for the second stripe and the second number of rows comprises one less than the second prime number.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 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 060436/0441 →
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 (052852/0022) Recorded Jun 23, 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 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 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 060436/0509 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2020
From: SCHNEIDER, ZVI; TAUBE, MARCELO; KAMRAN, LIOR; SOUKHMAN, ALEX; KRAKOV, DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052192/0586 →
Continuity (2)
Continuation 16044957 · Jul 25, 2018
Related Publication 20200218601A1 · Jul 9, 2020