ISUP:General guidelines for designing a high-performance system

From TBwiki
Jump to: navigation, search

High traffic (high number of circuits) and performance systems (low call processing response time) usually require multiple Tmedia devices and multiple host machines. These systems are almost always required to be scalable (down or up) to be adaptable to multiple different customer applications (i.e. a switch platform). Thus, such systems must have a very clean (read ‘simple’) architecture to be easily maintainable and accommodate new feature sets.


Multi-host high-performance system


  1. It is easier to architect such a system when every individual host machine can control a set of resources independently of the other host machine. For example (refer to the figure above), in a system where ten TB640 blades would be required (i.e. more than 300,000 circuits with a capacity of more than 8000 calls per second), a machine could process the call control of five TB640 blades and their associated circuits. This approach usually also makes the system easily scalable by adding more ‘nodes’ of TB640 / host machines without having to change the architecture.
  2. Other functions of the system (e.g. routing, configuration, etc) should also be divided in functional modules and allow interaction with other modules through asynchronous APIs (i.e. message based APIs between modules). This will force all modules to deal with asynchronous events and thus parallelize work (as mentioned before).
  3. Once each interface is made asynchronous, functional modules may be dispersed amongst different machines to increase the overall throughput of the system by using the CPU (and memory) resources of multiple machines.
  4. All previously mentioned guidelines must be respected (i.e. no synchronous operations) in every modules to avoid creating a bottleneck because of a slow module in the data flow. In case of extensive operation required by a single module, consider either re-dividing (parallelizing) the functions of that module or isolating the module onto a very powerful machine dedicated to that functional task.
Personal tools