Method and apparatus for dynamically balancing call flow workloads in a telecommunications system
First Claim
1. In a computer system for internet telephony, a method, performed at a manager, of distributing call flow events among a plurality of threads, each thread having a dedicated call flow event queue in which call flow events are queued, the method comprising:
- A. determining a call flow workload level for each of the plurality of threads;
B. determining that a first of the plurality of threads is inefficiently handling its assigned call flow workload; and
C. reassigning a call flow event from the call flow event queue dedicated to the first thread to the call flow event queue dedicated to a second of the plurality of threads.
2 Assignments
0 Petitions
Accused Products
Abstract
A call flow server is disclosed that processes call flow events from a plurality of gateways bridging between traditional circuit-switched networks and packet-switched networks. The call flow server server, which may be implemented with either a single processor or multi-processor design, includes call flow engine and call flow thread manager modules capable of managing a plurality of call flow events by distributing the call flow scripts associated with such events among a plurality of threads executing on the call flow server. Each call flow event in the form of a call flow script is processed on a single thread within a selected processor. Processing each call flow script on a single thread fully utilizes the processor resources and ensures that a call flow script need not be blocked while another call flow script is running. The call flow server includes a thread manager to direct a given call flow script to a thread that has excess capacity.
421 Citations
19 Claims
-
1. In a computer system for internet telephony, a method, performed at a manager, of distributing call flow events among a plurality of threads, each thread having a dedicated call flow event queue in which call flow events are queued, the method comprising:
-
A. determining a call flow workload level for each of the plurality of threads; B. determining that a first of the plurality of threads is inefficiently handling its assigned call flow workload; and C. reassigning a call flow event from the call flow event queue dedicated to the first thread to the call flow event queue dedicated to a second of the plurality of threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for use with a computer system for internet telephony, the computer system operatively coupled to a computer network and capable of communicating with one or more processes over the network, the computer program product comprising a computer readable medium having executable program code embodied in the computer readable medium, the executable program code being operable at a manager and comprising:
-
(A) executable program code for determining a call flow workload level for each of a plurality of threads; (B) executable program code for determining that a first of the plurality of threads is inefficiently handling its assigned call flow workload; and (C) executable program code for reassigning a call flow event from the call flow event queue dedicated to the first thread to the call flow event queue dedicated to a second of the plurality of threads. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. In a computer system for internet telephony, an apparatus for distributing call flow events among a plurality of threads, each thread having a dedicated call flow event queue in which call flow events are queued, the apparatus comprising:
-
a processor including; a call flow engine configured to execute call flow events associated with one of the threads; a call flow manager configured to distribute a plurality of call flow events among a plurality of threads used for managing the processing of a plurality of call flows, the call flow manager optimizing the processing of the call flows by determining which of the plurality of threads are operating inefficiently and reassigning a portion of the call flow events assigned to the dedicated call event queue of the inefficient thread to the dedicated call event queue of another of the plurality of threads having excess call flow processing capacity. - View Dependent Claims (18, 19)
-
Specification