Hash Table Domain Splitting for Atomic Storage Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges in ensuring atomicity and consistency during read-modify-write operations on non-volatile memory, particularly when dealing with unreliable tiers such as RAID over multiple disks, leading to potential data inconsistencies and the need for excessive journal implementations.

Innovation Solution

The method involves splitting a hash table into domains with a spare bucket for each subset, using metadata structures with head and spare bucket pointers that interleave during updates, ensuring atomicity and consistency without the need for lockless updates, and allowing for scalable and efficient expansion of the hash table.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a simple read-modify-write operation is performed on non-volatile memory block devices, then the operation speed is improved, but data consistency cannot be guaranteed under failure conditions

Engineering Contradiction:
Improveoperation speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-allocating multiple buckets (including spare buckets) and organizing them into domains before write operations occur. Each domain has pre-configured metadata structures with head and spare_bucket pointers. When a write operation occurs, the system can immediately use the pre-prepared spare buckets without needing to perform additional allocation or journaling operations, thus maintaining both speed and consistency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If excessive journal implementations are used to guarantee atomicity, then data consistency is improved, but device complexity and metadata overhead increase

Engineering Contradiction:
Improvedata consistencyVSAvoidmetadata overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the hash table into multiple domains, where each domain contains a subset of buckets and has its own metadata structure with head and spare_bucket pointers. This segmentation allows independent management of each domain's consistency without requiring global journaling mechanisms. The segmentation reduces metadata overhead by localizing the consistency management to individual domains rather than requiring system-wide journal structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copying by maintaining spare buckets as copies of the bucket structure. Instead of using complex journal implementations that record all modifications, the system simply copies the necessary metadata (head pointer and spare_bucket pointer) to the spare bucket before write operations. This copying approach guarantees atomicity with minimal metadata overhead, as only essential pointer information needs to be replicated rather than full journal entries.

Inventive Principle:
Principle #26Copying

3Reliability

If lockless updates are avoided in favor of traditional locking mechanisms, then data consistency is improved, but productivity and update efficiency decrease

Engineering Contradiction:
Improvedata consistencyVSAvoidupdate efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements self-service through its domain-based architecture with spare buckets. Each domain independently manages its own consistency using pre-configured head and spare_bucket pointers. When updates occur, the system automatically switches between buckets within the domain without requiring external locking mechanisms. This self-service approach maintains data consistency through the structural design rather than through active coordination, thereby preserving high update efficiency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11438415B2Managing hash tables in a storage system
Publication Date: 2022.09.06 EMC IP HLDG CO LLC
  • US11438415B2 patent drawing
  • US11438415B2 patent drawing
  • US11438415B2 patent drawing

AI summary

An aspect includes splitting a table of buckets into a fixed number of domains. Each of the domains includes a corresponding subset of the buckets. An aspect also includes providing a spare bucket for each of the subsets of the buckets and providing a metadata structure for each of the domains. The metadata structure includes a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the subset of the buckets. An aspect further includes providing a split-spare bucket pointer that interleaves, during updates to data, among the subset of buckets in the domain. Data subject to the updates is stored in the spare bucket for a corresponding one of the domains. An aspect also includes updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the data.