Bucketized Multi-Index Data Structures for SSD Cache Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvestorage efficiencyVSAvoidI/O latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveadaptability to varying deduplication ratiosVSAvoidmemory resource utilization
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple key types are stored in separate structures, then reliability of lookups is improved, but device complexity increases

Engineering Contradiction:
Improvelookup reliabilityVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9471500B2Bucketized multi-index low-memory data structures
Publication Date: 2016.10.18 NEC CORP
  • US9471500B2 patent drawing
  • US9471500B2 patent drawing
  • US9471500B2 patent drawing

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.