Waiting Thread Notification Offloading in Distributed Data Grids
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Device complexity
If a single service thread processes all notifiers, then the system structure is simple, but the processing capacity is limited
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.
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.
3Device complexity
If the service thread handles all notification processing, then thread coordination is straightforward, but the service thread becomes a performance bottleneck
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.
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.
Data Source
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.


