Cache Mapping Structure Retention for Compressed Block Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data storage systems face inefficiencies when managing compressed data during overwrites, as new data may not fit in previously allocated spaces, leading to incomplete mapping structures and reduced cache efficiency, which degrades system performance.

Innovation Solution

The technique involves obtaining a new mapping structure and segment during a cache processing cycle, partially populating it with compressed blocks that fit in existing space, holding it in cache, and further populating it in subsequent cycles until fully utilized, then releasing the hold.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the storage system allocates new mapping structures for each batch of compressed blocks, then the mapping structures can be created quickly, but the mapping structures remain incomplete and cache efficiency drops

Engineering Contradiction:
Improvemapping structure creation speedVSAvoidcache efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system pre-allocates mapping structures with sufficient capacity to hold multiple batches of compressed blocks. By preparing the mapping structure in advance with enough slots for N compressed blocks, the system avoids the overhead of creating new mapping structures for each batch while ensuring that the mapping structure can be fully populated, thereby maintaining both creation speed and cache efficiency.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If the storage system places compressed blocks in previously-allocated space, then space utilization improves, but the mapping structure cannot be fully populated

Engineering Contradiction:
Improvespace utilizationVSAvoidmapping structure completeness
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The system pre-allocates mapping structures with capacity for N compressed blocks and pre-reserves contiguous storage space segments. When compressed blocks arrive, the system can place them in the pre-reserved space and populate the pre-allocated mapping structure completely. This preliminary preparation ensures both high space utilization and complete mapping structures without requiring new allocations during batch processing.

Inventive Principle:
Principle #10Preliminary action

3Loss of energy

If the storage system releases mapping structures from cache after processing, then cache memory is freed, but system performance degrades due to frequent reallocation

Engineering Contradiction:
Improvecache memory availabilityVSAvoidsystem performance
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The system pre-allocates mapping structures with capacity for multiple batches (N blocks) and keeps them in cache until fully populated. By preparing the mapping structure in advance and ensuring it can accommodate multiple batches, the system reduces the frequency of mapping structure reallocation. The mapping structure is retained in cache longer, improving system performance while the pre-allocation strategy ensures cache memory is efficiently utilized without excessive reallocation overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10970221B2Optimizing space utilization by retaining metadata in cache
Publication Date: 2021.04.06 EMC IP HLDG CO LLC
  • US10970221B2 patent drawing
  • US10970221B2 patent drawing
  • US10970221B2 patent drawing

AI summary

A technique for managing data received into a cache operates in cycles. To process a current batch of compressed blocks during a current cache processing cycle, a storage system obtains a new mapping structure and a new segment of contiguous storage space. If the system can place some of the current batch of compressed blocks into previously-allocated space, the system does so and partially populates the new mapping structure with entries for mapping the other compressed blocks that were not placed. The system then asserts a hold on the new mapping structure, so that the mapping structure is retained in cache at the end of the current cache processing cycle, and more completely populates the new mapping structure with entries for other compressed blocks during a later cache processing cycle before releasing the hold.