Cuckoo Tree Duplicate Key Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face performance bottlenecks and increased wear due to excessive metadata storage and lock overhead, particularly in log structured storage devices, where multiple operations are required for each unit of user data, leading to redundant metadata storage and increased likelihood of deadlocks.

Innovation Solution

Implementing a Cuckoo tree with duplicate key support using a Cuckoo filter table and stash, which tracks fingerprints of keys and manages duplicate keys by setting a duplicate threshold to limit the number of fingerprints in each bucket, thereby reducing false positives and improving lookup performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional log structured storage devices store metadata for each unit of user data, then data management capability is improved, but metadata write overhead and lock overhead increase significantly

Engineering Contradiction:
Improvedata management capabilityVSAvoidstorage performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent combines multiple metadata operations (store, retrieve, delete) into a single Cuckoo filter structure, allowing concurrent access without traditional locks. The filter integrates key storage, lookup, and duplicate detection in one unified data structure, eliminating the need for separate metadata operations and reducing lock contention.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The Cuckoo filter acts as an intermediary between the storage system and metadata management, providing a lock-free mechanism for handling metadata. The filter's probabilistic nature allows concurrent reads and writes without traditional locking, mediating access conflicts through its unique lookup and insertion algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple operations are performed for each unit of user data in LSS, then data integrity is improved, but the number of metadata writes increases

Engineering Contradiction:
Improvedata integrityVSAvoidmetadata write volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The Cuckoo filter performs preliminary duplicate detection and metadata consolidation before actual storage operations. By pre-processing metadata to identify duplicates and consolidate redundant information, the system reduces the volume of metadata that needs to be written to persistent storage while maintaining data integrity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The filter discards redundant duplicate metadata entries by detecting and eliminating duplicate keys before storage. The Cuckoo filter's duplicate detection capability allows the system to discard redundant metadata writes while recovering only the necessary unique metadata, reducing overall write volume.

Inventive Principle:
Principle #34Discarding and recovering

3Stability of the object's composition

If locks are taken when storing metadata blocks, then data consistency is improved, but deadlocks become more likely and performance decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidstorage performance
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent replaces the mechanical locking system with a probabilistic data structure-based concurrency control mechanism. The Cuckoo filter uses its unique lookup and insertion algorithms to ensure data consistency without traditional locks, substituting the mechanical locking approach with a software-based probabilistic mechanism that allows concurrent access.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The Cuckoo filter provides self-service concurrency control through its inherent probabilistic structure. The filter automatically handles concurrent access scenarios through its lookup and insertion algorithms, eliminating the need for external locking mechanisms and reducing the risk of deadlocks while maintaining data consistency.

Inventive Principle:
Principle #25Self-service

4Productivity

If a Cuckoo filter bucket stores many fingerprints, then key lookup capability is improved, but false positives increase

Engineering Contradiction:
Improvekey lookup capabilityVSAvoidlookup accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system uses partial fingerprint storage and selective bucket population to balance lookup capability with false positive rates. By not filling every bucket to maximum capacity and using partial key information, the filter maintains good lookup performance while controlling false positives through controlled sparsity in the filter structure.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11048757B2Cuckoo tree with duplicate key support
Publication Date: 2021.06.29 EMC IP HLDG CO LLC
  • US11048757B2 patent drawing
  • US11048757B2 patent drawing
  • US11048757B2 patent drawing

AI summary

An aspect of implementing a Cuckoo tree includes providing a Cuckoo filter table for performing lookups in a Cuckoo tree. The table tracks fingerprints of keys and tablets in which the keys reside. An aspect also includes providing a stash configured to manage duplicate keys in the tree. The stash includes: a key hash table that stores full keys corresponding bucket index references that point to a reverse time ordered list of values corresponding to the full keys; and a value store having buckets with slots for storing the list. An aspect further includes setting a duplicate threshold value in the tree that provides a limit on a number of fingerprints that can exist in a bucket. During a store operation on a key, upon determining the number of existing entries with same fingerprint in target bucket would exceed the threshold, another bucket is selected for the key.