Identity-Based Thread Pool Assignment for Servlet Containers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional servlet containers with a single thread pool face constraints in implementing Quality of Service (QoS) solutions, as they cannot efficiently differentiate and prioritize resource requests, leading to suboptimal system performance and the need for context switching between thread pools.
Innovation Solution
Implementing a plurality of virtual thread pools managed by a servlet container, where requests are classified and processed based on identifying characteristics, such as user or resource identifiers, allowing for differentiated service level guarantees and prioritization without context switching, using a counting semaphore and compare-and-set instructions to efficiently allocate processing threads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a single thread pool is used to handle all resource requests, then the device complexity is reduced, but the system cannot efficiently differentiate and prioritize requests from different users or sources
Solution Approach 1:
The patent divides a single thread pool into multiple virtual thread pools, where each virtual thread pool is associated with a specific user or source. This segmentation allows the system to differentiate and prioritize requests from different users while maintaining a unified underlying thread pool structure, thus resolving the contradiction between adaptability and device complexity.
2Reliability
If multiple physical thread pools are created to serve different users, then service level guarantees and prioritization are improved, but context switching between thread pools increases and system performance deteriorates
Solution Approach 1:
The patent creates virtual copies of thread pools that map to a single physical thread pool. These virtual thread pools provide the appearance of multiple independent pools for different users, enabling service level guarantees and prioritization, while actually sharing the same physical threads to avoid context switching overhead and maintain high system performance.
3Adaptability or versatility
If requests are placed in queues requiring offloading to memory, then resource allocation flexibility is improved, but the need for context switching and offloading reduces system efficiency
Solution Approach 1:
The patent extracts the virtualization layer from the request handling process, allowing requests to be directly assigned to available physical threads through the virtual thread pool mechanism. This eliminates the need for complex queue offloading to memory while maintaining resource allocation flexibility through virtual pool management, thus improving system efficiency.
Data Source
AI summary
Various embodiments described herein include at least one of systems, methods, and software for identity-based thread pool assignment. The identity may identify a source of a request where the source is a user, human or logical, or a network location where the request originated. Some embodiments include receiving a resource request via a network and classifying the resource request into a processing thread pool of a plurality of processing thread pools. The classifying may be based at least in part on an identifying characteristic of a source of the resource request. Each processing thread pool may have an assigned maximum number of processing threads available at any one time for processing resource requests. When a processing thread of the processing thread pool the request is classified into is available, some embodiments then assign the resource request to the available processing thread.


