Parallel Thread Queue for Asynchronous Data Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The insurance industry faces significant delays, typically taking weeks to months, in recalculating premiums due to the inefficiencies in processing large volumes of data for rate changes, which are compounded by the serial and inefficient processing methods used by actuaries, even with advanced hardware capabilities.
Innovation Solution
A system for asynchronous and parallel application processing is introduced, where input data is queued and processed by threads on multiple servers, allowing for customizable and adjustable processing to increase throughput, with memory load monitoring and dynamic adjustments to optimize server usage, enabling real-time adjustments to enhance processing speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If serial processing methods are used to process large volumes of data, then processing accuracy is maintained, but processing time increases significantly (weeks to months)
Solution Approach 1:
The patent divides the large volume of data into multiple smaller batches or segments that can be processed in parallel. The system queues input data and distributes it across multiple worker threads, each handling a portion of the data independently. This segmentation allows simultaneous processing while maintaining accuracy through consistent application of the same processing logic across all segments.
Solution Approach 2:
The patent transitions from single-dimensional serial processing to multi-dimensional parallel processing by introducing multiple worker threads operating simultaneously. This dimensional change in processing architecture allows the system to handle large data volumes by distributing work across multiple processing dimensions (threads) rather than sequentially along a single processing path.
2Productivity
If more processing power is allocated to handle large data volumes, then processing speed increases, but system complexity and resource management difficulty increase
Solution Approach 1:
The patent implements dynamic resource allocation where the system can adjust the number of worker threads based on queue depth and system load. The processing architecture is flexible and adaptive, allowing the system to scale processing power dynamically rather than requiring fixed complex infrastructure. This dynamic approach simplifies resource management while maintaining high processing speeds.
Solution Approach 2:
The patent introduces a queue management system as an intermediary between data input and processing workers. This intermediary component simplifies the complexity by providing a standardized interface for data distribution, thread coordination, and result aggregation, thereby managing system complexity while enabling parallel processing.
3Stability of the object's composition
If fixed processing architecture is used, then system stability is maintained, but adaptability to different data volumes and processing requirements decreases
Solution Approach 1:
The patent creates a universal processing architecture where worker threads can handle different types of data and processing tasks through a common framework. The system is designed to be multi-functional, accommodating various data volumes and processing requirements without requiring fundamental architectural changes. This universality maintains stability while providing adaptability.
Solution Approach 2:
The patent enables adaptability through parameter changes in the processing configuration, such as adjusting the number of worker threads, queue size, and processing priorities based on data volume and requirements. These parameter adjustments allow the stable core architecture to adapt to different processing scenarios without compromising system stability.
Data Source
AI summary
Input records are obtained based on a request to process an application. References to the input records are stored as entries in a queue. A total thread number for threads and a total server number for servers are determined. The threads are initiated on the servers and are asynchronously processed in parallel on the servers. Each thread obtains a reference from a unique entry of the queue, marks that entry as being addressed, processes the input record corresponding to the entry using values provided with a request to process the application, stores results associated with processing the input record in a data store, and iterates back to obtain a next unique entry from the queue until every entry of the queue is marked as having been addressed. When every entry of the queue is marked, a reference is returned to the data store as application results for processing the application.


