Multi-threaded Connection Manager for Network Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional connection management systems in computer networking environments are application-specific, requiring separate connection managers for different applications, which limits their ability to manage connections across multiple applications and increases resource allocation inefficiencies.

Innovation Solution

A multi-threaded connection management system that uses a main thread, worker threads, and reverse worker threads to manage connections between clients and applications, with unique identifiers and hash tables to balance load and facilitate communication across multiple applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single connection manager is used to handle multiple applications, then resource allocation efficiency and scalability are improved, but the complexity of managing diverse application connections increases

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidconnection management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The connection manager is segmented into multiple specialized threads: worker threads for handling connection establishment and data transmission, reverse worker threads for managing reply messages, and a main thread for coordination. This segmentation allows the system to handle diverse application connections through specialized components rather than a monolithic structure, improving resource allocation while managing complexity through functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The connection manager is designed as a universal multi-functional system that can handle connections for multiple different applications simultaneously. The thread-based architecture provides generic connection management capabilities that can be applied across various application types, eliminating the need for separate connection managers for each application and thereby improving resource allocation efficiency.

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

2Ease of operation

If multiple separate connection managers are used for different applications, then connection management is simplified for each application, but resource allocation efficiency decreases

Engineering Contradiction:
Improveconnection management simplicityVSAvoidresource allocation efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Multiple connection manager functionalities are merged into a single unified connection manager that serves multiple applications. The system combines connection establishment, data transmission, and reply message handling for various applications into one integrated system, improving resource allocation efficiency by eliminating redundant connection management instances while maintaining operational simplicity through a standardized thread-based interface.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If a thread-based architecture is implemented, then load balancing and throughput are improved, but the system complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system employs dynamic thread creation and assignment where worker threads and reverse worker threads are created as needed to handle connection requests. The main thread dynamically assigns incoming connections to appropriate worker threads based on current system state, enabling flexible load balancing and high throughput while managing complexity through dynamic adaptation rather than static rigid structures.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The main thread acts as an intermediary that coordinates between incoming connection requests and worker threads. It manages the assignment of connections to worker threads and oversees the coordination between worker threads and reverse worker threads, thereby enabling complex multi-threaded operations while presenting a simplified interface for connection management.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If unique identifiers and hash tables are used for connection tracking, then connection management accuracy is improved, but memory usage increases

Engineering Contradiction:
Improveconnection tracking accuracyVSAvoidmemory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The system pre-allocates and manages hash tables for connection tracking before connections are established. By preparing the data structures in advance and using efficient hash table implementations, the system achieves accurate connection tracking through unique identifiers while optimizing memory usage through proactive resource management rather than reactive allocation during connection handling.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9154580B2Connection management in a computer networking environment
Publication Date: 2015.10.06 TATA CONSULTANCY SERVICES LTD
  • US9154580B2 patent drawing
  • US9154580B2 patent drawing
  • US9154580B2 patent drawing

AI summary

The present subject matter discloses a system and a method for managing a connection between a client and an application within a server in a network. In one implementation, the method includes receiving a connection request from the client. The method further includes associating with a worker thread, a unique identifier (UID) that uniquely identifies the received connection request. Further, the method involves, communicating a message that includes client data associated with the connection request to the application by the worker thread. The method also includes obtaining, by a reverse worker thread, a reply message associated with the UID from the application. The reverse worker thread is configured to communicate the reply message to the client.