Lazy Push Optimization for Vectorized D-Heap Insert Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing heap data structures, particularly d-heaps, face inefficiencies in insert performance due to the need for frequent comparisons to maintain the heap property, which hampers performance in applications like graph algorithms where many keys are inserted without immediate retrieval.

Innovation Solution

The implementation of a lazy push optimization strategy that delays heapify operations until a retrieve operation occurs, using horizontal aggregation SIMD instructions to minimize comparisons during insertions, allowing push operations to become constant time while slightly reducing retrieve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If heapify operations are performed immediately during insertions to maintain the heap property, then the heap structure remains valid and retrieve operations are efficient, but insert performance deteriorates due to frequent comparisons

Engineering Contradiction:
Improveheap property maintenanceVSAvoidinsert performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing heapify operations in advance during batch insertions rather than waiting until retrieval is needed. The system maintains a flag indicating whether the heap property is satisfied, and when batch insertions complete, it proactively restores the heap property before any retrieval operation occurs. This resolves the contradiction by preparing the heap structure beforehand, ensuring both insert efficiency (by deferring heapify) and retrieve efficiency (by ensuring heap property is satisfied).

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If gather instructions are used to load values along the path from last node to root node, then insert operations can access all necessary values, but performance worsens due to increased cycle requirements compared to regular load instructions

Engineering Contradiction:
Improvevalue access capabilityVSAvoidinsert performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies partial action by selectively loading only the necessary values during insert operations rather than loading all values along the entire path. The system uses conditional logic to determine which values need to be accessed based on the current heap state and insertion position, avoiding unnecessary gather instructions. This resolves the contradiction by providing adequate value access capability while minimizing the performance overhead of gather instructions.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all values along the path from last node to root node are loaded during insertion, then the heap property can be maintained, but resource usage increases by loading values that are not needed in most cases

Engineering Contradiction:
Improveheap property maintenanceVSAvoidmemory access volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by making the memory access pattern adaptive to the specific insertion scenario. The system determines locally which values actually need to be accessed based on the insertion position and current heap configuration, rather than uniformly loading all values along the path. This resolves the contradiction by maintaining heap property reliability while reducing the quantity of memory accesses to only what is locally necessary for each insertion operation.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11573793B2Lazy push strategies for vectorized D-Heaps
Publication Date: 2023.02.07 ORACLE INT CORP
  • US11573793B2 patent drawing
  • US11573793B2 patent drawing
  • US11573793B2 patent drawing

AI summary

Techniques are provided for lazy push optimization, allowing for constant time push operations. A d-heap is used as the underlying data structure for indexing values being inserted. The d-heap is vectorized by storing values in a contiguous memory array. Heapify operations are delayed until a retrieve operation occurs, improving insert performance of vectorized d-heaps that use horizontal aggregation SIMD instructions at the cost of slightly lower retrieve performance.