Dynamic Range Messaging for Multi-Threaded Index Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional array-based solutions for tracking execution threads in multi-threaded environments face performance bottlenecks due to latency and unnecessary serialization, especially when calculating dynamic range sizes and handling partially filled ranges.

Innovation Solution

A dynamic range-based messaging system that aggregates multithreaded work requests using a dataflow-type algorithm, dynamically assigning next available indices and computing ranges based on workload and system load, allowing for scalable and efficient message aggregation and consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a worker thread is used to manage array indices in a multi-threaded environment, then uniqueness of array indices is guaranteed, but system performance deteriorates due to latency from sleep-wake cycles and serialization of work request processing

Engineering Contradiction:
Improveuniqueness of array indicesVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the worker thread mechanism from the system and replaces it with a static range allocation approach. Each thread is assigned a dedicated range of array indices it can use without coordination, eliminating the need for a central worker thread to manage index uniqueness. This resolves the contradiction by removing the serialization bottleneck while maintaining index uniqueness through spatial separation of thread operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the array index space into multiple static ranges, with each range assigned to a specific thread. This segmentation allows multiple threads to operate independently on their own ranges without interfering with each other, eliminating the need for a central coordinating worker thread and thus improving system performance while maintaining reliability of index uniqueness.

Inventive Principle:
Principle #1Segmentation

2Productivity

If static ranges of array indices are allocated to multiple threads, then parallel processing is enabled, but the system fails to adapt to varying workload conditions due to fixed range sizes

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidadaptability to workload variations
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic range allocation that adjusts the size of array index ranges assigned to threads based on their current workload. When a thread completes its assigned range quickly, it receives an expanded range; when it processes slowly, its range is reduced. This dynamic adjustment maintains high parallel processing capability while adapting to varying workload conditions, resolving the contradiction between productivity and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms that monitor thread processing performance and use this information to adjust future range allocations. Threads that demonstrate high processing capacity receive larger ranges in subsequent allocations, while slower threads receive smaller ranges. This feedback-driven approach enables the system to maintain optimal parallel processing efficiency while adapting to changing workload characteristics.

Inventive Principle:
Principle #23Feedback

3Device complexity

If conventional static range allocation is used, then implementation simplicity is maintained, but optimal performance cannot be achieved due to inability to dynamically adjust range sizes

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsystem throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces dynamic range size adjustment while maintaining relatively simple implementation through the use of static initial ranges and straightforward expansion/contraction logic. The system starts with static ranges for simplicity but dynamically adjusts them based on thread performance, achieving optimal throughput without excessive complexity. The dynamic aspect allows performance optimization while the underlying static range structure maintains implementation simplicity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10073723B2Dynamic range-based messaging
Publication Date: 2018.09.11 ORACLE INT CORP
  • US10073723B2 patent drawing
  • US10073723B2 patent drawing
  • US10073723B2 patent drawing

AI summary

Methods and systems for dynamic range-based messaging may include one or more processors configured to implement a dynamic range-based messaging system configured to receive, from respective producers of multiple producers, requests for indices to add respective messages to a contiguous message array. The system may assign, to the respective producers, next available indices. The system may populate the contiguous message array with messages from the respective producers at respective assigned indices. The system may compute a range of messages in the contiguous message array ready to be consumed, where the range starts at an initial index. The system may determine a highest assigned index from the initial index when a quantity of indices assigned from the initial index matches a quantity of messages populated within the range. The system may indicate that the computed range of messages in the contiguous message array is ready to be consumed.