Bucketized Multi-Index Data Structures for SSD Cache Deduplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing SSD caches face challenges in implementing data deduplication and compression due to increased CPU and RAM overhead, leading to I/O latency issues, especially with uncompressible and non-duplicate data, and conventional approaches waste memory resources by separately allocating structures for varying deduplication ratios.
Innovation Solution
A bucketized multi-index data structure with fixed-size memory regions and pointerless hash tables that use short signatures for efficient mapping and compression, allowing for a single I/O operation to retrieve metadata and cache page content, and dynamically adjusting key ratios within buckets to maintain optimal memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data deduplication and compression are implemented in SSD caches using conventional approaches, then storage efficiency is improved, but CPU and RAM overhead increases leading to I/O latency issues
Solution Approach 1:
The patent segments the deduplication and compression operations into distinct phases: hashing operations are performed in parallel on multiple data chunks simultaneously, and the data structure is divided into fixed-size memory regions (buckets) that can be independently managed. This segmentation allows CPU-intensive operations to be distributed and executed efficiently without blocking I/O operations.
Solution Approach 2:
The patent performs preliminary hashing of data chunks to generate fingerprints before actual storage operations. The bucketized data structure pre-allocates fixed-size memory regions and establishes mapping relationships in advance, so that when data needs to be stored or retrieved, the system can quickly determine the appropriate bucket without dynamic allocation or complex searches during I/O operations.
2Adaptability or versatility
If separate data structures are allocated for varying deduplication ratios, then adaptability is improved, but memory resource utilization deteriorates due to waste
Solution Approach 1:
The patent creates a universal bucketized data structure where each bucket is designed to handle multiple key types (LBA keys and CA keys) and varying deduplication scenarios. The fixed-size memory regions can dynamically accommodate different ratios of deduplicated to non-deduplicated data without requiring separate structures, making the system adaptable to varying workloads while maintaining efficient memory utilization.
Solution Approach 2:
The patent changes the parameter of memory allocation from dynamic to fixed-size regions. By allocating predetermined fixed-size buckets, the system eliminates the need to reallocate or resize memory structures as deduplication ratios change. The buckets can hold varying numbers of keys based on their fixed capacity, allowing the system to adapt to different deduplication scenarios without wasting memory resources on underutilized allocations.
3Reliability
If multiple key types are stored in separate structures, then reliability of lookups is improved, but device complexity increases
Solution Approach 1:
The patent merges the storage of multiple key types (LBA keys and CA keys) into a single unified bucketized data structure. Each bucket can contain both types of keys alongside their associated values, eliminating the need for separate data structures. The unified structure maintains lookup reliability by organizing keys and values in a consistent format that supports both LBA-based and content-addressable lookups within the same memory region.
Data Source
AI summary
Systems and methods for generating and storing a data structure for maintaining cache supporting compression and cache-wide deduplication, including generating data structures with fixed size memory regions configured to hold multiple signatures as keys, wherein the number of the fixed size memory regions is bounded. A first mapping is generated from short-length signatures to a storage location and a quantized length measure on a cache storage device; and unused contiguous regions on the cache device are allocated. Metadata and cache page content is retrieved using a single input/output operation; a correctness of a full value of hash functions of uncompressed cache page content is validated; a second mapping is generated from short-length signatures to entries in the first mapping; and verification of whether the cached page content corresponds to a full-length original logical block address using the metadata is performed.


