Amortized Hash Table Updates via Chunked Sorting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face inefficiencies in updating data structures in non-volatile memory block devices due to non-atomic read-modify-write operations, leading to poor amortization and write amplification, especially when handling aggregated updates across multiple disks.

Innovation Solution

Implementing an amortized execution method for hardened hash tables by aggregating updates across multiple chunks, sorting them by bucket index, and iteratively executing these updates to minimize write amplification and latency, ensuring each bucket is written only once during a hardening cycle.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If simple read-modify-write operations are performed on non-volatile memory block devices, then data updates can be executed, but amortization is poor and write amplification occurs

Engineering Contradiction:
ImproveamortizationVSAvoidwrite amplification
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The hash table is divided into multiple chunks, and updates are distributed across these chunks. This segmentation allows the system to process updates in smaller units, improving amortization by spreading write operations across multiple storage locations rather than concentrating them in a single location, thereby reducing write amplification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Updates are aggregated and sorted by bucket index before being executed on the hash table. This preliminary organization of data ensures that when writes are performed, they are already optimized for the storage layout, reducing the need for additional write operations and improving amortization while minimizing write amplification.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If aggregated updates are distributed across multiple chunks, then amortization improves, but update execution complexity increases

Engineering Contradiction:
ImproveamortizationVSAvoidupdate execution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By dividing the hash table into chunks and distributing updates across them, the system breaks down the complex update execution into smaller, more manageable segments. This segmentation reduces the complexity of handling large aggregated updates while maintaining improved amortization through distributed writes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of update organization by sorting updates according to bucket index values before execution. This parameter change transforms the update distribution strategy, making the execution process more systematic and less complex while preserving the amortization benefits of distributed writes.

Inventive Principle:
Principle #35Parameter changes

3Loss of energy

If updates are sorted by bucket index values, then write amplification is reduced, but processing time increases

Engineering Contradiction:
Improvewrite amplificationVSAvoidprocessing time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

Sorting updates by bucket index values is performed as a preliminary action before the actual write operations. This upfront organization reduces write amplification by ensuring updates are in the optimal sequence for storage, and the time investment in sorting is offset by the reduction in subsequent write operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies partial sorting by distributing sorted updates across multiple chunks rather than requiring complete sorting of all updates before any writes occur. This partial action approach reduces processing time while still achieving the write amplification reduction benefits in the critical path of operations.

Inventive Principle:
Principle #16Partial or excessive action

4Loss of energy

If iterative execution is performed across chunks, then write amplification decreases, but execution latency increases

Engineering Contradiction:
Improvewrite amplificationVSAvoidexecution latency
Core Design Contradiction:
Loss of energyVSDuration of action of moving object

Solution Approach 1:

Iterative execution is segmented across multiple chunks, allowing the system to perform write operations in parallel on different chunks. This segmentation reduces write amplification by distributing writes while managing latency through concurrent processing of multiple chunk segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The iterative execution maintains continuity by systematically processing each chunk in sequence, ensuring that write operations continue without interruption across the distributed chunks. This continuous action reduces write amplification while minimizing idle time that would contribute to execution latency.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11669570B2Amortized execution of updates to a hardened hash table
Publication Date: 2023.06.06 EMC IP HLDG CO LLC
  • US11669570B2 patent drawing
  • US11669570B2 patent drawing
  • US11669570B2 patent drawing

AI summary

An aspect of implementing amortized execution of updates for a hash table includes aggregating, within a data structure, updates to be executed for the hash table. The aggregated updates are distributed across a plurality of chunks in the data structure. An aspect also includes sorting, within each of the chunks, the updates according to respective bucket index values associated with the updates, and iteratively executing the sorted updates across each of the chunks in the data structure.