Spare Bucket Atomicity in Fixed-Size Hash Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges in ensuring atomicity during read-modify-write operations, particularly in non-fully-duplicative RAID systems over multiple disks, where the native block size inconsistency leads to potential data inconsistency in failure conditions, often requiring excessive journaling to guarantee data consistency.

Innovation Solution

The method involves reserving a spare bucket in a cyclic and consecutive manner across multiple buckets, updating pointers to ensure atomicity by storing data in the spare bucket and maintaining metadata in non-volatile memory, allowing for lockless and scalable updates without additional write overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If excessive journaling is used to guarantee data consistency in non-atomic read-modify-write operations, then data integrity and reliability are improved, but device complexity and storage overhead increase significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidjournal implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The hash table is divided into multiple buckets, each capable of independent read-modify-write operations. The spare bucket acts as a separate segment for atomic updates, allowing each bucket to be updated independently without requiring complex journaling across the entire structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A spare bucket is pre-reserved and prepared before the read-modify-write operation. The pointer update is performed in advance by writing to the spare bucket first, then atomically switching the hash table entry to point to the spare bucket. This preliminary preparation eliminates the need for post-operation journaling.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If atomic read-modify-write operations are implemented to guarantee consistency in failure conditions, then data integrity is improved, but storage space requirements increase due to additional metadata and journaling

Engineering Contradiction:
Improvedata consistencyVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The spare bucket serves multiple functions: it acts as a temporary storage location during updates, a validation checkpoint for atomicity, and a failure recovery point. This multi-functionality eliminates the need for separate journaling structures and additional metadata, achieving atomicity without extra storage overhead.

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

3Reliability

If traditional journal implementations are used to ensure atomicity, then data consistency in failure conditions is improved, but write overhead and processing time increase

Engineering Contradiction:
ImproveatomicityVSAvoidwrite throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The spare bucket is prepared in advance and the pointer update is performed atomically in a single operation. This eliminates the need for multi-step journaling and reduces write overhead to a single atomic transfer, significantly improving write throughput while maintaining atomicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of writing complete journal records and then applying them, the system copies only the essential pointer information to the spare bucket and atomically switches the reference. This copying approach reduces the amount of data transferred and processed, improving productivity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11243930B2System and method for scalable and space efficient hardening of a fixed sized hash table over an unreliable tier
Publication Date: 2022.02.08 EMC IP HLDG CO LLC
  • US11243930B2 patent drawing
  • US11243930B2 patent drawing
  • US11243930B2 patent drawing

AI summary

A method, computer program product, and computer system for storing data in a bucket of a plurality of buckets. A spare bucket may be reserved in the plurality of buckets. A copy of the data may be stored in the spare bucket. A pointer to the data in the bucket and a pointer to the copy of the data in the spare bucket may be updated based upon, at least in part, storing the data in the bucket and storing the copy of the data in the spare bucket.