IP Library Granted Patent US 10,592,173
Granted Patent B2
US 10,592,173 · App. 15/867,265 · Granted Mar 17, 2020

Increasing storage efficiency of a data protection technique

Inventors: Roman A. Pletka (Zurich, CH); Radu I. Stoica (Zurich, CH); Ioannis Koltsidas (Zurich, CH); Nikolas Ioannou (Zurich, CH); Sasa Tomic (Kilchberg, CH); Antonios K. Kourtis (Zurich, CH); Charalampos Pozidis (Thalwil, CH)
Assignee: International Business Machines Corporation
G06F3/0689G06F3/064G06F3/0604G06F3/0619G06F3/0658G06F3/0688G06F11/1076H03M7/30G06F2212/401
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,592,173
App. No.
15/867,265
Granted
Mar 17, 2020
Kind
B2
Abstract

A technique for operating a data storage system includes receiving uncompressed data. The uncompressed data is organized into data strips of a stripe. The data strips are compressed subsequent to the organizing. Parity information for the compressed data strips is calculated. Storage of the compressed data strips and the parity information for the stripe is initiated on respective storage devices of the data storage system.

Claims (46)

1. A method of operating a data storage system that includes multiple storage devices, comprising:

receiving, by a first controller, uncompressed data;

organizing, by the first controller, the uncompressed data into data strips of a stripe;

compressing, by second controllers that are each associated with a different one of the storage devices, the data strips of the stripe;

calculating, by the first controller, parity information for the data strips subsequent to the compressing, wherein calculating the parity information for the data strips subsequent to the compressing increases efficiency of the data storage system by reducing a size of the parity information; and

initiating, by the second controllers, storing of the compressed data strips and the parity information for the stripe on the storage devices of the data storage system.

2. The method of claim 1 , further comprising:

determining a size of a largest one of the data strips in the stripe; and

padding remaining ones of the data strips in the stripe with zeroes such that all of the data strips in the stripe are a same size prior to calculating the parity information.

3. The method of claim 1 , further comprising:

performing log-structured array (LSA) data organization on the uncompressed data prior to the uncompressed data being organized into the data strips of the stripe.

4. The method of claim 3 , wherein the received uncompressed data is organized into the data strips using a Redundant Array of Independent Disks (RAID) engine.

5. The method of claim 3 , wherein the first controller is implemented in a storage controller.

6. The method of claim 5 , wherein the first controller implements a Redundant Array of Independent Disks (RAID) engine that is configured to organize the uncompressed data into the data strips of the stripe.

7. The method of claim 5 , wherein the second controllers are each configured to compress one of the data strips of the stripe.

8. A data storage system that includes multiple storage devices, comprising:

a non-volatile memory (NVM) array; and

one or more controllers coupled to the NVM array, wherein the one or more controllers include a first controller and second controllers, and wherein the one or more controllers are configured to:

receive, by the first controller, uncompressed data;

organize, by the first controller, the uncompressed data into data strips of a stripe;

compress, by the second controllers that are each associated with a different one of the storage devices, the data strips of the stripe in the storage devices;

calculate, by the first controller, parity information for the data strips subsequent to the compressing, wherein calculating the parity information for the data strips subsequent to the compressing increases efficiency of the data storage system by reducing a size of the parity information; and

initiate, by the second controllers, storing of the compressed data strips and the parity information for the stripe on the storage devices of the data storage system.

9. The data storage system of claim 8 , wherein the one or more controllers are further configured to:

determine a size of a largest one of the data strips in the stripe; and

pad remaining ones of the data strips in the stripe with zeroes such that all of the data strips in the stripe are a same size prior to calculating the parity information.

10. The data storage system of claim 8 , wherein at least one of the one or more controllers are further configured to:

perform Log-Structured Array (LSA) data organization on the uncompressed data prior to the uncompressed data being organized into the data strips of the stripe.

11. The data storage system of claim 10 , wherein the received uncompressed data is organized into the data strips using a Redundant Array of Independent Disk (RAID) engine.

12. The data storage system of claim 10 , wherein the first controller is implemented at a storage controller level.

13. The data storage system of claim 12 , wherein the first controller implements a Redundant Array of Independent Disks (RAID) engine that is configured to organize the uncompressed data into the data strips of the stripe.

14. The data storage system of claim 12 , wherein the second controllers are each configured to compress one of the data strips of the stripe.

15. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therein, the program instructions executable by one or more controllers, that include a first controller and second controllers, of a data storage system that includes multiple storage devices, to cause the one or more controllers to:

receive, by the first controller, uncompressed data;

organize, by the first controller, the uncompressed data into data strips of a stripe;

compress, by the second controllers that are each associated with a different one of the storage devices, the data strips of the stripe in the storage devices;

calculate, by the first controller, parity information for the data strips subsequent to the compressing, wherein calculating the parity information for the data strips subsequent to the compressing increases efficiency of the data storage system by reducing a size of the parity information; and

initiate, by the second controllers, storing of the compressed data strips and the parity information for the stripe on the storage devices of the data storage system.

16. The computer program product of claim 15 , wherein the program instructions are further configured to cause the one or more controllers to:

determine a size of a largest one of the data strips in the stripe; and

pad remaining ones of the data strips in the stripe with zeroes such that all of the data strips in the stripe are a same size prior to calculating the parity information.

17. The computer program product of claim 15 , wherein the program instructions are further configured to cause at least one of the one or more controllers to:

perform Log-Structured Array (LSA) data organization on the uncompressed data prior to the uncompressed data being organized into the data strips of the stripe.

18. The computer program product of claim 17 , wherein the received uncompressed data is organized into the data strips using a Redundant Array of Independent Disks (RAID) engine.

19. The computer program product of claim 17 , wherein the first controller is implemented in a storage controller.

20. The computer program product of claim 19 , wherein the first controller implements a Redundant Array of Independent Disks (RAID) engine that is configured to organize the uncompressed data into the data strips of the stripe, and wherein the second controllers are each configured to compress one of the data strips of the stripe.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE DOC DATE FOR THE SIXTH ASSIGNOR KOURTIS, ANTONIOS K. PREVIOUSLY RECORDED ON REEL 044588 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 6, 2018
From: PLETKA, ROMAN A.; STOICA, RADU I.; KOLTSIDAS, IOANNIS; IOANNOU, NIKOLAS; TOMIC, SASA; KOURTIS, ANTONIOS K.; POZIDIS, CHARALAMPOS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045260/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2018
From: PLETKA, ROMAN A.; STOICA, RADU I.; KOLTSIDAS, IOANNIS; IOANNOU, NIKOLAS; TOMIC, SASA; KOURTIS, ANTONIOS K.; POZIDIS, CHARALAMPOS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044588/0001 →
Continuity (1)
Related Publication 20190212949A1 · Jul 11, 2019