Waiting Thread Notification Offloading in Distributed Data Grids

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed data grids, the process of thread notification is expensive and can become a performance limiter, especially when a single service thread is responsible for waking multiple threads, leading to CPU bottlenecks and impaired performance.

Innovation Solution

The system offloads thread notification processing from the signaling/service thread to a set of waiting threads, utilizing them as an ad-hoc special purpose thread pool, allowing multiple threads to operate in parallel and distribute the processing of notifiers, thereby avoiding capacity limits of a single thread.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single service thread is responsible for waking multiple threads, then the notification process is simple to manage, but CPU bottlenecks occur and performance deteriorates

Engineering Contradiction:
Improvenotification management complexityVSAvoidsystem performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the notification processing task from the service thread and distributes it to multiple waiting threads. Each waiting thread independently processes a portion of the notifiers, dividing the workload into parallel segments that can be executed simultaneously, thereby eliminating the CPU bottleneck while maintaining manageable complexity through structured task distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The waiting threads perform self-service by autonomously processing notifiers from the collection without requiring continuous intervention from the service thread. Each waiting thread independently retrieves and processes notifiers, reducing the service thread's workload and improving overall system performance while keeping the management model simple.

Inventive Principle:
Principle #25Self-service

2Device complexity

If a single service thread processes all notifiers, then the system structure is simple, but the processing capacity is limited

Engineering Contradiction:
Improvesystem structureVSAvoidprocessing capacity
Core Design Contradiction:
Device complexityVSPower

Solution Approach 1:

The notification processing capacity is segmented across multiple waiting threads, each capable of independently processing notifiers. This segmentation multiplies the system's processing capacity while maintaining a simple overall structure through the use of a shared collection that naturally distributes work among threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges the processing capabilities of multiple waiting threads into a unified notification handling system. By combining their individual processing powers through a shared collection of notifiers, the system achieves enhanced processing capacity while preserving structural simplicity through the common interface of the collection.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If the service thread handles all notification processing, then thread coordination is straightforward, but the service thread becomes a performance bottleneck

Engineering Contradiction:
Improvethread coordinationVSAvoidnotification processing speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The notification processing workload is segmented and distributed to multiple waiting threads, allowing parallel execution that significantly increases notification processing speed. The coordination complexity remains manageable because each thread independently accesses the shared collection, which handles synchronization automatically.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-threaded sequential processing model to a multi-threaded parallel processing model, adding the dimension of concurrency. This dimensional change dramatically increases processing speed while the shared collection provides a straightforward coordination mechanism that prevents excessive complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10061627B2System and method for supporting waiting thread notification offloading in a distributed data grid
Publication Date: 2018.08.28 ORACLE INT CORP
  • US10061627B2 patent drawing
  • US10061627B2 patent drawing
  • US10061627B2 patent drawing

AI summary

A system and method for waiting-thread notification offloading supports thread notification offloading in a multi-threaded messaging system such as a distributed data grid. Pending notifiers are maintained in a pending notifier collection. A service thread adds pending notifiers to the collection instead of signaling the notifiers on the service thread. An active thread associated with the service thread determines that it is ready to enter a wait state. Before entering the wait state or instead of entering the wait state, the active thread retrieves pending notifiers from the pending notifier collection, signals the retrieved pending notifiers, and wakes the waiting threads associated with the pending notifiers, thereby offloading the notifier signaling overhead from the service thread to the active thread. Such waiting-thread notification offloading of notifier processing from the service thread improves performance of the service thread with respect to other tasks thereby improving performance of the service thread and the multi-threaded messaging system.