Timer Affinity in Session-Based Server Deployments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current telecommunications infrastructure faces challenges in processing time-sensitive telephony protocols efficiently, leading to high latency and performance issues, especially in distributed and scalable deployments using Voice Over Internet Protocol (VoIP) networks.
Innovation Solution
Implementing a SIP server with a two-tier architecture, where the engine tier processes communications with minimal latency and maintains a near-cache for state information, and the state tier handles state management, while timer affinity is established between timers and the engine node that processed the last message for a session, reducing the need for network bandwidth and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If timers are distributed across multiple engine nodes in a cluster, then load balancing is improved, but timer firing accuracy deteriorates due to the need to poll all nodes
Solution Approach 1:
The patent introduces a load manager as an intermediary component that coordinates timer distribution and polling across engine nodes. The load manager receives timer creation requests, distributes timers to appropriate engine nodes, and manages the polling process to ensure accurate timer firing while maintaining load balance across the cluster.
Solution Approach 2:
The system performs preliminary actions by pre-distributing timers to engine nodes before they need to fire. The load manager proactively manages timer placement and polling schedules, ensuring that timers are already positioned on the correct engine nodes and that polling occurs at optimally timed intervals to maintain both load balance and timing accuracy.
2Reliability
If timers are processed by polling all engine nodes, then timer firing reliability is improved, but network bandwidth consumption increases
Solution Approach 1:
Instead of polling all engine nodes continuously, the system applies partial action by polling only the necessary subset of nodes at appropriate intervals. The load manager determines which engine nodes have timers that need checking and polls only those nodes, reducing unnecessary network traffic while maintaining timer firing reliability.
Solution Approach 2:
The system implements periodic polling of engine nodes rather than continuous polling. The load manager schedules polling at specific time intervals that are sufficient to ensure timer firing reliability but spaced out enough to minimize network bandwidth consumption. This periodic approach balances reliability requirements with resource efficiency.
3Stability of the object's composition
If state information is stored centrally, then data consistency is improved, but access latency increases for distributed engines
Solution Approach 1:
The patent segments state information management by allowing each engine node to maintain local copies of state data relevant to its assigned timers and sessions. The load manager coordinates these distributed state copies to ensure consistency across the cluster, enabling engines to access local state information quickly while maintaining overall data consistency through centralized coordination.
Solution Approach 2:
The system applies local quality by enabling each engine node to store and access state information locally rather than requiring all engines to access a central repository. This local caching of state data significantly reduces access latency for distributed engines while the load manager ensures that state consistency is maintained across the cluster through coordinated updates and validations.
Data Source
AI summary
The session-based server deployment is comprised of an engine tier that is designed for high throughput processing of communications and a state tier that maintains state information for access by the engine tier. The engine tier includes a plurality of engine nodes that process incoming messages. The state nodes contain call state, including various timers. When processing a call, an engine sets various timers in the state tier. The engine then periodically polls the state tier for any timers that have expired. Upon expiration of a timer, the timer is assigned to the corresponding engine node which handled previous communications for the call. This affinity between the timer and its respective engine provides numerous benefits, including reduced latency and more localized data access.


