Thread Affinity Mechanism for Reducing System Resource Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face significant resource overhead and latency due to the frequent opening and closing of system resources by threads when assigned to user objects, leading to inefficient resource utilization and potential thread hang-ups caused by resource contention, errors, or network issues.

Innovation Solution

Implementing 'thread affinity' where threads are permanently assigned to user objects, allowing resources to remain open and minimizing the need for repeated database switching and error handling, thereby reducing overhead and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If threads are frequently assigned and reassigned to user objects, then system adaptability is improved, but system resource overhead increases due to repeated opening and closing of resources

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidsystem resource overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The system pre-opens and pre-allocates system resources (such as database connections, network sockets, and file handles) before threads are actually needed. When a thread is assigned to a user object, the resources are already available and do not need to be opened again. This preliminary action eliminates the repeated opening and closing of resources that occurs in traditional thread assignment models, thereby reducing system resource overhead while maintaining the ability to dynamically assign threads to user objects as needed.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If threads are frequently assigned and reassigned to user objects, then system adaptability is improved, but processing latency increases due to resource opening and closing operations

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidprocessing latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system pre-opens and pre-allocates system resources (such as database connections, network sockets, and file handles) before threads are actually needed. When a thread is assigned to a user object, the resources are already available and do not need to be opened again. This preliminary action eliminates the repeated opening and closing of resources that occurs in traditional thread assignment models, thereby reducing system resource overhead while maintaining the ability to dynamically assign threads to user objects as needed.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple threads share system resources, then resource utilization is improved, but thread reliability decreases due to resource contention and potential hang-ups

Engineering Contradiction:
Improveresource utilizationVSAvoidthread reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the allocation of system resources by creating dedicated resource pools for different user objects. Instead of having all threads share a common pool of resources, each user object has its own allocated resources that are exclusively used by threads assigned to that user object. This segmentation eliminates resource contention between threads from different user objects, preventing deadlocks and hang-ups, while still allowing high resource utilization within each user object's dedicated resources.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If database connections are opened and closed with each thread assignment, then resource allocation flexibility is improved, but network traffic increases due to repeated connection establishment

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidnetwork traffic
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system implements a persistent database connection pool that can be shared across multiple threads and user objects. Instead of opening and closing database connections for each thread assignment, a set of database connections is established once and then reused by multiple threads as they are assigned to different user objects. This multi-functional approach allows the same database connections to serve multiple purposes and multiple user objects, significantly reducing the network traffic associated with repeated connection establishment while maintaining flexible resource allocation.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8671410B2System and method for allocation of threads to user objects in a computer system
Publication Date: 2014.03.11 MALIKIE INNOVATIONS LTD
  • US8671410B2 patent drawing
  • US8671410B2 patent drawing
  • US8671410B2 patent drawing

AI summary

A method for allocating threads to a user in a computer system is described. The method comprises queuing up work for a first user and permanently assigning a first thread to the first user, wherein the first thread performs the queued up work for the first user, and wherein each time work is subsequently queued up for the first user, the first thread performs the queued up work for the first user.