Cache Pre-decompression for Read Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems face performance issues due to inline decompression during each read cycle of compressed data, reducing read throughput and system performance.
Innovation Solution
Pre-decompressing compressed data pre-fetched into a cache before it is requested, using a decompression component that retrieves and decompresses compression chunks from an encoded cache portion and stores the uncompressed data in a decoded cache portion, allowing for efficient retrieval by client applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If inline decompression is performed during each read cycle of compressed data, then the data can be decompressed and accessed, but read throughput and system performance are reduced
Solution Approach 1:
The patent applies preliminary action by pre-fetching compressed data into cache memory and performing decompression operations before the data is actually requested by client applications. The storage system proactively decompresses compression chunks and stores both compressed and decompressed versions in cache, so that when a read request arrives, the system can immediately serve decompressed data without performing inline decompression during the read cycle.
2Ease of operation
If decompression operations are performed during each read cycle, then data can be accessed in uncompressed form, but system performance deteriorates
Solution Approach 1:
The system performs decompression operations in advance during background pre-fetch operations rather than during active read cycles. Compression chunks are retrieved from storage, decompressed, and both the compressed and decompressed versions are cached before any client request arrives. This eliminates the performance penalty of inline decompression while ensuring decompressed data is readily available for immediate retrieval.
Solution Approach 2:
The patent introduces cache memory as an intermediary layer between storage and client applications. The cache stores both compressed and decompressed versions of data, acting as a buffer that decouples the storage system from client read requests. This intermediary allows the system to serve decompressed data from cache without involving the storage subsystem or performing decompression during the actual read operation.
3Quantity of substance
If compressed data is stored in cache, then storage efficiency is improved, but additional decompression processing is required
Solution Approach 1:
The system performs decompression in advance during background operations, converting compressed data to uncompressed form before client requests arrive. Both compressed and uncompressed versions are cached, so the system maintains storage efficiency through compression while eliminating the need for complex inline decompression processing during read operations. The decompression complexity is shifted to background operations that do not impact client performance.
Data Source
AI summary
Pre-decompressing a compressed form of data that has been pre-fetched into a cache to facilitate subsequent retrieval of a decompressed form of the data from the cache is presented herein. A system retrieves, from a first portion of a cache, a compression chunk comprising compressed data blocks representing a compressed form of a group of data blocks in response to a first cache hit from the first portion of the cache being incurred, decompresses the compression chunk to obtain a decompressed chunk comprising uncompressed data blocks representing an uncompressed form of the group of data blocks, and inserts the uncompressed data blocks into a second portion of the cache. Further, the system retrieves, from the second portion of the cache, an uncompressed data block of the uncompressed data blocks in response to a second cache hit from the second portion of the cache being incurred.


