FTP Load Balancing via RSS and Port Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core cluster systems, existing methods struggle to efficiently manage FTP data connections, particularly when the server initiates data connections from non-standard ports, as they often require special handling to ensure that data connections are processed by the same core that handled the control connection, which is not always feasible.

Innovation Solution

The implementation of receive side scaling (RSS) filter rules and changes in port allocation logic allow for flexible core assignment of both client-side and server-side data connections in multi-core systems, enabling data connections to be served on any core, including those that did not process the control connection, using core-to-core messages and node-to-node messages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data connections are restricted to be processed only by the same core that handled the control connection, then connection processing reliability is improved, but system resource utilization deteriorates

Engineering Contradiction:
Improveconnection processing reliabilityVSAvoidsystem resource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the connection processing function by separating control connection handling from data connection handling. Different cores can be assigned to handle different types of connections, allowing the system to maintain reliability for control connections while improving resource utilization by distributing data connection processing across multiple cores including network I/O cores.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables network I/O cores to serve dual purposes: handling network packet I/O operations and processing FTP data connections. This multi-functionality allows the system to utilize all available cores for connection processing, improving overall resource utilization while maintaining connection reliability through proper state management.

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

2Stability of the object's composition

If special handling is implemented to ensure data connections are processed by the same core as control connection, then connection consistency is improved, but system complexity deteriorates

Engineering Contradiction:
Improveconnection consistencyVSAvoidsystem complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent extracts the connection state management functionality into a separate component that maintains a global state table. This separation allows data connections to be handled by any core without compromising consistency, as the state management component coordinates access to connection states across all cores, reducing system complexity by centralizing state tracking.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism (the state management component with global state table) that mediates between multiple cores processing data connections. This intermediary ensures connection consistency by coordinating state access across cores without requiring data connections to be processed by the same core that handled the control connection.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If flexible core assignment is implemented for data connections, then system scalability is improved, but information tracking complexity deteriorates

Engineering Contradiction:
Improvesystem scalabilityVSAvoidconnection state tracking
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent implements preliminary action by pre-establishing a global state table that tracks all connection states before data connections are distributed to different cores. This pre-established tracking mechanism ensures that connection information is maintained and accessible regardless of which core processes the data connection, enabling flexible core assignment without losing connection state information.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the state management component continuously updates and monitors connection states across all cores. This feedback system ensures that even when data connections are flexibly assigned to any core, the system maintains accurate tracking of connection information through centralized state management and inter-core communication.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10200447B2FTP load balancing support for cluster
Publication Date: 2019.02.05 CITRIX SYSTEMS INC
  • US10200447B2 patent drawing
  • US10200447B2 patent drawing
  • US10200447B2 patent drawing

AI summary

The present disclosure is directed to providing FTP data connections between a client and a server via a multi-core system. Both client-side and server-side data connections are allowed to be served on a core that is the same as a core that has processed the corresponding control connection using at least one of receive side scaling (RSS) filter rules and changes in port allocation logic. In a cluster where control connection and data connection can reach different nodes based on an RSS distribution, the node which has processed the control connection is also allowed to process the corresponding data connection using at least one of RSS filter rules, service registration, changes in port allocation logic and node-to-node (N2N) messages. The systems and methods discussed herein apply to active FTP, passive FTP, and active FTP with a random port in which the server initiates data connection from a non-standard FTP port.