Identity-Based Thread Pool Assignment for Servlet Containers

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveability to differentiate and prioritize requestsVSAvoidthread pool structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveservice level guaranteesVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidsystem efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9886315B2Identity and semaphore-based quality of service
Publication Date: 2018.02.06 EBAY INC
  • US9886315B2 patent drawing
  • US9886315B2 patent drawing
  • US9886315B2 patent drawing

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.