My Asterisk doesn scale. How about Afelio?
Yes indeed, Asterisk does not scale. The reasons are poor design choices such as using algorithms and data structures which don’t scale but also poor implementation such as overzealous locking. For example, channel drivers written by Digium often have several hundred instances of mutex locks, whilst the independently developed woomera channel driver has only about 30 such instances. Afelio was designed for scalability. Separating the switching core from the protocol stacks and running them as independent daemons is one such measure which will make Afelio more scalable. Other measures are choice of efficient and scalable algorithms, limited use of mutex locks in favour of coroutine based and lock-free designs. One such example is our lock-free hash table library, specifically designed for Afelio. Our aim is to make Afelio one of the most scalable, if not the most scalable telephony server available. For more details, please refer to the Afelio roadmap.