IP Library Granted Patent US 11,119,668
Granted Patent B1
US 11,119,668 · App. 16/823,813 · Granted Sep 14, 2021

Managing incompressible data in a compression-enabled log-structured array storage system

Inventors: Itay Keller (Tel Aviv, IL); Nir Milstein (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0631G06F3/061G06F3/064G06F3/067G06F3/0608G06F3/0619G06F3/0653G06F3/0665
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,119,668
App. No.
16/823,813
Granted
Sep 14, 2021
Kind
B1
Abstract

Techniques are provided for managing incompressible data in a compression-enabled log-structured array storage system. A log-structured array is implemented in a block storage device having a physical storage space divided into logical data blocks (e.g., fixed-size allocation units), wherein the log-structured array includes a log segment which includes a set of contiguous logical data blocks of the physical storage space. When a write request is received to store data, if the received data is deemed compressible, the data is compressed and written in a log entry in the log segment of the log-structured array. If the data is deemed incompressible, the data is written without compression in a log entry in the log segment of the log-structured array such that the log entry which stores the data without compression is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the log segment.

Claims (59)

1. A method, comprising:

implementing, by a storage control system, a log-structured array in at least one block storage device, wherein the at least one block storage device comprises a physical storage space divided into a plurality of logical data blocks, wherein the logical data blocks each comprise a separately addressable unit of the physical storage space with a specified block size, and wherein the log-structured array comprises at least one log segment which comprises a set of contiguous logical data blocks of the physical storage space of the at least one block storage device;

receiving, by the storage control system, an input/output (I/O) write request and associated I/O write data to be written to the at least one block storage device;

compressing, by the storage control system, the I/O write data to generate compressed I/O write data;

determining, by the storage control system, a level of data compression of the compressed I/O write data;

determining, by the storage control system, whether the level of data compression of the compressed I/O write data meets a target threshold level of data compression;

in response to determining that the level of data compression of the compressed I/O write data does meet the target threshold level of data compression, the storage control system writing the compressed I/O write data in a log entry in the at least one log segment of the log-structured array, wherein the log entry which comprises the compressed I/O write data is unaligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment; and

in response to determining that the level of data compression of the compressed I/O write data does not meet the target threshold level of data compression, the storage control system writing the I/O write data without compression in a log entry in the at least one log segment of the log-structured array, wherein the log entry which comprises the I/O write data without compression is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

2. The method of claim 1 , wherein determining the level of data compression of the compressed I/O write data comprises the storage control system determining a compressibility value as a function of a size of the I/O write data as received and a size of the compressed I/O write data; and

wherein determining whether the level of data compression of the compressed I/O write data meets the target threshold level of data compression comprises the data control system comparing the determined compressibility value to a predefined compressibility threshold value.

3. The method of claim 2 , wherein the compressibility value is computed as a compression ratio and wherein the compressibility threshold value comprises a compression ratio threshold value.

4. The method of claim 1 , wherein writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array comprises the storage control system writing the I/O write data without compression in a next available log entry location at a head of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment.

5. The method of claim 1 , wherein writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array comprises the storage control system writing the I/O write data without compression in a next available log entry location from an end of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment.

6. The method of claim 1 , wherein writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array comprises the storage control system performing an in-place-update by rewriting the I/O write data without compression in an existing log entry of the at least one log segment which comprises a previous version of the I/O write data.

7. The method of claim 1 , wherein writing the compressed I/O write data in the log entry in the at least one log segment of the log-structured array comprises:

writing a first portion of the compressed I/O write data in a first log entry; and

writing a second portion of the compressed I/O write data in a second log entry;

wherein the first log entry and the second log entry are separated by at least a third log entry which comprises non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

8. The method of claim 1 , further comprising performing, by the storage control system, a defragmentation process to defragment the at least one log segment of the log-structured array without relocating any log entry in the at least one log segment which comprises valid non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

9. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method comprising:

implementing, by a storage control system, a log-structured array in at least one block storage device, wherein the at least one block storage device comprises a physical storage space divided into a plurality of logical data blocks, wherein the logical data blocks each comprise a separately addressable unit of the physical storage space with a specified block size, and wherein the log-structured array comprises at least one log segment which comprises a set of contiguous logical data blocks of the physical storage space of the at least one block storage device;

receiving, by the storage control system, an input/output (I/O) write request and associated I/O write data to be written to the at least one block storage device;

compressing, by the storage control system, the I/O write data to generate compressed I/O write data;

determining, by the storage control system, a level of data compression of the compressed I/O write data;

determining, by the storage control system, whether the level of data compression of the compressed I/O write data meets a target threshold level of data compression;

in response to determining that the level of data compression of the compressed I/O write data does meet the target threshold level of data compression, the storage control system writing the compressed I/O write data in a log entry in the at least one log segment of the log-structured array, wherein the log entry which comprises the compressed I/O write data is unaligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment; and

in response to determining that the level of data compression of the compressed I/O write data does not meet the target threshold level of data compression, the storage control system writing the I/O write data without compression in a log entry in the at least one log segment of the log-structured array, wherein such that the log entry which comprises the I/O write data without compression is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

10. The article of manufacture of claim 9 , wherein:

the program code for determining the level of data compression of the compressed I/O write data comprises program code that is executable by the one or more processors for determining a compressibility value as a function of a size of the I/O write data as received and a size of the compressed I/O write data; and

the program code for determining whether the level of data compression of the compressed I/O write data meets the target threshold level of data compression comprises program code that is executable by the one or more processors for comparing the determined compressibility value to a predefined compressibility threshold value.

11. The article of manufacture of claim 10 , wherein the compressibility value is computed as a compression ratio and wherein the compressibility threshold value comprises a compression ratio threshold value.

12. The article of manufacture of claim 9 , wherein the program code for writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array comprises program code that is executable by the one or more processors for writing the I/O write data without compression in one of (i) a next available log entry location at a head of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment and (ii) a next available log entry location from an end of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment.

13. The article of manufacture of claim 9 , wherein the program code for writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array comprises program code that is executable by the one or more processors for performing an in-place-update by rewriting the I/O write data without compression in an existing log entry of the at least one log segment which comprises a previous version of the I/O write data.

14. The article of manufacture of claim 9 , wherein the program code for writing the compressed I/O data in a log entry in the at least one log segment of the log-structured array comprises program code that is executable by the one or more processors for:

writing a first portion of the compressed I/O write data in a first log entry; and

writing a second portion of the compressed I/O write data in a second log entry;

wherein the first log entry and the second log entry are separated by at least a third log entry which comprises non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

15. The article of manufacture of claim 9 , further comprising program code that is executable by the one or more processors for performing, by the storage control system, a defragmentation process to defragment the at least one log segment of the log-structured array without relocating any log entry in the at least one log segment which comprises valid non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

16. A server node, comprising:

at least one processor; and

system memory configured to store program code, wherein the program code is executable by the at least one processor to implement a storage control system which is configured to:

implement a log-structured array in at least one block storage device, wherein the at least one block storage device comprises a physical storage space divided into a plurality of logical data blocks, wherein the logical data blocks each comprise a separately addressable unit of the physical storage space with a specified block size, and wherein the log-structured array comprises at least one log segment which comprises a set of contiguous logical data blocks of the physical storage space of the at least one block storage device;

receive an input/output (I/O) write request and associated I/O write data to be written to the at least one block storage device;

compress the I/O write data to generate compressed I/O write data;

determine a level of data compression of the compressed I/O write data;

determine whether the level of data compression of the compressed I/O write data meets a target threshold level of data compression;

write the compressed I/O write data in a log entry in the at least one log segment of the log-structured array, in response to determining that the level of data compression of the compressed I/O write data does meet the target threshold level of data compression, wherein the log entry which comprises the compressed I/O write data is unaligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment; and

write the I/O write data without compression in a log entry in the at least one log segment of the log-structured array, wherein the log entry which comprises the I/O write data without compression is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment, in response to determining that the level of data compression of the compressed I/O write data does not meet the target threshold level of data compression.

17. The server node of claim 16 , wherein:

in determining the level of data compression of the compressed I/O write data, the storage control system is configured to determine a compressibility value as a function of a size of the I/O write data as received and a size of the compressed I/O write data; and

in determining whether the level of data compression of the compressed I/O write data meets the target threshold level of data compression, the storage control system is configured to compare the determined compressibility value to a predefined compressibility threshold value.

18. The server node of claim 16 , wherein in writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array, the storage control system is configured to write the I/O write data without compression in one of (i) a next available log entry location at a head of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment and (ii) a next available log entry location from an end of the at least one log segment, which is write-aligned to a logical data block of the set of contiguous logical data blocks of the at least one log segment.

19. The server node of claim 16 , wherein:

in writing the I/O write data without compression in the log entry in the at least one log segment of the log-structured array, the storage control system is configured to perform an in-place-update by rewriting the I/O write data without compression in an existing log entry of the at least one log segment which comprises a previous version of the I/O write data; and

in writing the compressed I/O write data in the log entry in the at least one log segment of the log-structured array, the storage control system is configured to:

write a first portion of the compressed I/O write data in a first log entry; and

write a second portion of the compressed I/O write data in a second log entry;

wherein the first log entry and the second log entry are separated by at least a third log entry which comprises non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

20. The server node of claim 16 , wherein the storage control system is configured to perform a defragmentation process to defragment the at least one log segment of the log-structured array without relocating any log entry in the at least one log segment which comprises valid non-compressed data and which is write-aligned to at least one logical data block of the set of contiguous logical data blocks of the at least one log segment.

Assignments (13)
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 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 (053311/0169) 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 CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
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 (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 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 CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 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
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
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 19, 2020
From: KELLER, ITAY; MILSTEIN, NIR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052168/0196 →