IP Library › Granted Patent US 12,443,342
Granted Patent B2
US 12,443,342 · App. 18/513,800 · Granted Oct 14, 2025

Method, electronic device, and computer program product for compressing data based on segment IO counts of respective time segments for a storage area

Inventors: Chaojun Zhao (Chengdu, CN); Shuangshuang Liang (Zunyi, CN); Yang Zhang (Chengdu, CN)
Assignee: Dell Products L.P.
G06F3/0608G06F3/0653G06F3/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 12,443,342
App. No.
18/513,800
Granted
Oct 14, 2025
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for compressing data. The method includes determining a plurality of access levels of a plurality of storage areas in a storage space based on a plurality of input/output (IO) counts of the plurality of storage areas in a historical time period. The method further includes determining an access level threshold based on the utilization of the storage space. The method further includes selecting at least one target storage area among the plurality of storage areas based on the plurality of access levels and the access level threshold. The method further includes compressing a plurality of pages in the at least one target storage area. Embodiments of the present disclosure provide a strategy of merging and compression based on a system state, which balances data compression efficiency and system performance.

Claims (100)

1. A method for compressing data, comprising:

determining a plurality of access levels of a plurality of storage areas in a storage space based on a plurality of input/output (IO) counts of the plurality of storage areas in a historical time period;

determining an access level threshold based on utilization of the storage space;

selecting at least one target storage area among the plurality of storage areas based on the plurality of access levels and the access level threshold; and

compressing a plurality of pages in the at least one target storage area;

wherein determining the plurality of access levels of the plurality of storage areas comprises:

dividing the historical time period into a plurality of segments;

determining a plurality of segment IO counts of a first storage area among the plurality of storage areas in the plurality of segments; and

determining a first access level of the first storage area based on the plurality of segment IO counts and one or more corresponding segment access levels.

2. The method according to claim 1 , wherein determining the first access level of the first storage area comprises:

determining a first segment and a second segment that are contiguous among the plurality of segments, the second segment following the first segment;

determining a second segment count corresponding to the second segment among the plurality of segment IO counts;

obtaining a first segment access level of the first segment; and

determining a second segment access level of the second segment based on the second segment count and the first segment access level.

3. The method according to claim 2 , wherein determining the second segment access level of the second segment comprises:

determining a first weight for the first segment access level;

determining a second weight for the second segment count; and

determining the second segment access level based on the first weight, the first segment access level, the second weight, and the second segment count.

4. The method according to claim 1 , wherein determining the access level threshold comprises:

obtaining a predetermined low usage level threshold and a predetermined high usage level threshold of the storage space;

determining a current usage level of the storage space based on a currently used capacity and a total capacity of the storage space; and

determining the access level threshold based on the low usage level threshold, the high usage level threshold, and the current usage level.

5. The method according to claim 4 , wherein determining the access level threshold comprises:

determining a set of mappings between the access level threshold and the current usage level;

comparing the current usage level with the low usage level threshold and the high usage level threshold to obtain a comparison result;

determining a mapping corresponding to the comparison result among the set of mappings; and

determining the access level threshold based on the determined mapping and the current usage level.

6. The method according to claim 5 , wherein the set of mappings comprises a first mapping, a second mapping, and a third mapping,

wherein the access level threshold has the first mapping with the current usage level when the access level threshold is less than the low usage level threshold, the access level threshold has the second mapping with the current usage level when the access level threshold is greater than the low usage level threshold and less than the high usage level threshold, and the access level threshold has the third mapping with the current usage level when the access level threshold is greater than the high usage level threshold; and

wherein the magnitude of increase of the access level threshold with the increase of the current usage level as indicated by the second mapping is greater than that indicated by the first mapping and the third mapping.

7. The method according to claim 1 , wherein compressing the plurality of pages in the at least one target storage area comprises:

grouping the plurality of pages into a plurality of groups of pages to be compressed based on a storage relationship between storage locations of the plurality of pages; and

respectively compressing each of the plurality of groups of pages to be compressed into a data block.

8. The method according to claim 7 , wherein the storage relationship comprises at least one of:

logical storage locations of the pages to be compressed being contiguous;

the pages to be compressed being located in the same storage area;

the pages to be compressed being associated with the same write operation; or

the pages to be compressed being located in a particular intermediate dump area.

9. An electronic device, comprising:

a processor; and

a memory coupled with the processor and having instructions stored therein, wherein the instructions, when executed by the processor, cause the electronic device to perform actions comprising:

determining a plurality of access levels of a plurality of storage areas in a storage space based on a plurality of input/output (IO) counts of the plurality of storage areas in a historical time period;

determining an access level threshold based on utilization of the storage space;

selecting at least one target storage area among the plurality of storage areas based on the plurality of access levels and the access level threshold; and

compressing a plurality of pages in the at least one target storage area;

wherein determining the plurality of access levels of the plurality of storage areas comprises:

dividing the historical time period into a plurality of segments;

determining a plurality of segment IO counts of a first storage area among the plurality of storage areas in the plurality of segments; and

determining a first access level of the first storage area based on the plurality of segment IO counts and one or more corresponding segment access levels.

10. The electronic device according to claim 9 , wherein determining the first access level of the first storage area comprises:

determining a first segment and a second segment that are contiguous among the plurality of segments, the second segment following the first segment;

determining a second segment count corresponding to the second segment among the plurality of segment IO counts;

obtaining a first segment access level of the first segment; and

determining a second segment access level of the second segment based on the second segment count and the first segment access level.

11. The electronic device according to claim 10 , wherein determining the second segment access level of the second segment comprises:

determining a first weight for the first segment access level;

determining a second weight for the second segment count; and

determining the second segment access level based on the first weight, the first segment access level, the second weight, and the second segment count.

12. The electronic device according to claim 9 , wherein determining the access level threshold comprises:

obtaining a predetermined low usage level threshold and a predetermined high usage level threshold of the storage space;

determining a current usage level of the storage space based on a currently used capacity and a total capacity of the storage space; and

determining the access level threshold based on the low usage level threshold, the high usage level threshold, and the current usage level.

13. The electronic device according to claim 12 , wherein determining the access level threshold comprises:

determining a set of mappings between the access level threshold and the current usage level;

comparing the current usage level with the low usage level threshold and the high usage level threshold to obtain a comparison result;

determining a mapping corresponding to the comparison result among the set of mappings; and

determining the access level threshold based on the determined mapping and the current usage level.

14. The electronic device according to claim 13 , wherein the set of mappings comprises a first mapping, a second mapping, and a third mapping,

wherein the access level threshold has the first mapping with the current usage level when the access level threshold is less than the low usage level threshold, the access level threshold has the second mapping with the current usage level when the access level threshold is greater than the low usage level threshold and less than the high usage level threshold, and the access level threshold has the third mapping with the current usage level when the access level threshold is greater than the high usage level threshold; and

wherein the magnitude of increase of the access level threshold with the increase of the current usage level as indicated by the second mapping is greater than that indicated by the first mapping and the third mapping.

15. The electronic device according to claim 9 , wherein compressing the plurality of pages in the at least one target storage area comprises:

grouping the plurality of pages into a plurality of groups of pages to be compressed based on a storage relationship between storage locations of the plurality of pages; and

respectively compressing each of the plurality of groups of pages to be compressed into a data block.

16. The electronic device according to claim 15 , wherein the storage relationship comprises at least one of:

logical storage locations of the pages to be compressed being contiguous;

the pages to be compressed being located in the same storage area;

the pages to be compressed being associated with the same write operation; or

the pages to be compressed being located in a particular intermediate dump area.

17. A computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine-executable instructions that, when executed by a machine, cause the machine to perform actions comprising:

determining a plurality of access levels of a plurality of storage areas in a storage space based on a plurality of input/output (IO) counts of the plurality of storage areas in a historical time period;

determining an access level threshold based on utilization of the storage space;

selecting at least one target storage area among the plurality of storage areas based on the plurality of access levels and the access level threshold; and

compressing a plurality of pages in the at least one target storage area;

wherein determining the plurality of access levels of the plurality of storage areas comprises:

dividing the historical time period into a plurality of segments;

determining a plurality of segment IO counts of a first storage area among the plurality of storage areas in the plurality of segments; and

determining a first access level of the first storage area based on the plurality of segment IO counts and one or more corresponding segment access levels.

18. The computer program product according to claim 17 , wherein determining the first access level of the first storage area comprises:

determining a first segment and a second segment that are contiguous among the plurality of segments, the second segment following the first segment;

determining a second segment count corresponding to the second segment among the plurality of segment IO counts;

obtaining a first segment access level of the first segment; and

determining a second segment access level of the second segment based on the second segment count and the first segment access level.

19. The computer program product according to claim 18 , wherein determining the second segment access level of the second segment comprises:

determining a first weight for the first segment access level;

determining a second weight for the second segment count; and

determining the second segment access level based on the first weight, the first segment access level, the second weight, and the second segment count.

20. The computer program product according to claim 17 , wherein determining the access level threshold comprises:

obtaining a predetermined low usage level threshold and a predetermined high usage level threshold of the storage space;

determining a current usage level of the storage space based on a currently used capacity and a total capacity of the storage space; and

determining the access level threshold based on the low usage level threshold, the high usage level threshold, and the current usage level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2023
From: ZHAO, CHAOJUN; LIANG, SHUANGSHUANG; ZHANG, YANG
To: DELL PRODUCTS L.P.
Reel/Frame 065642/0896 →
Priority Claims (1)
CN 202311414834.2 · Oct 27, 2023 · national
Continuity (1)
Related Publication 20250138729A1 · May 1, 2025
References Cited (15)
US 9110857B1 · Rostoker · 2015 [cited by examiner]
US 10509769B1 · Shilane · 2019 [cited by examiner]
US 12093189B1 · Saidi · 2024 [cited by examiner]
US 20160371190A1 · Romanovskiy · 2016 [cited by examiner]
US 20170046074A1 · Wang · 2017 [cited by examiner]
US 20170371593A1 · Li · 2017 [cited by examiner]
US 20190138439A1 · Kwak · 2019 [cited by examiner]
US 20190235758A1 · Constantinescu · 2019 [cited by examiner]
US 20220121386A1 · Hsu · 2022 [cited by examiner]
US 20220342596A1 · Kamran · 2022 [cited by examiner]
US 20240354299A1 · Lee · 2024 [cited by examiner]
Wikipedia, “Data Compression,” https://en.wikipedia.org/wiki/Data_compression, Nov. 3, 2023, 18 pages. [cited by applicant]
Dell EMC, “Dell EMC Unity: Compression,” White Paper, Mar. 2018, 39 pages. [cited by applicant]
Dell EMC, “Dell EMC Unity: Compression for File,” A How-To-Guide, Mar. 2018, 18 pages. [cited by applicant]
Dell EMC, “Dell Unity: How to Use Data Reduction and Compression—Considerations and Best Practices,” Article No. 000022795, https://www.dell.com/support/kbdoc/en-us/article/Ikbprint?ArticleNumber=000022795&AccessLevel=1… [cited by applicant]