Scale means Skills

ProcessOne - Mickaël Rémond - October 17, 2011

I have read a few comments during the week-end about possible fixes to ejabberd problems. It calls for clarification of to avoid lack of understanding of the area and frustration.


image

Looking at the given mentioned problems (OTP and binary support), one of them is already in ejabberd 3.0 alpha (binaries), but what got my attention is that finally they might not be problems. It always depends ultimately on what you want to achieve. Some optimisations might be relevant in a few cases, but in a generic situation I still think that optimisations we made for ejabberd project for our customers on a case by case have a much larger impact. Some of the mentioned improvements would also stand on your scaling path for different use cases.

Let me take a specific example. OTP compliance is a controversial topic. Erlang OTP stands for Open Telecom Platform and is essentially a set of good practices and pattern to build Erlang applications. OTP provides a convenient help to get started but it is no silver bullet for all Erlang applications design. Sometimes, they fit in your problem and sometimes you have to do it differently.

One of the typical OTP pattern is supervision. You are supposed to link Erlang workers (the process doing actual work) to a supervisor that can trigger actions when the worker terminates.

However, for extremely large systems, with lots of worker creation and destruction, the supervisor comes with a performance penalty that you cannot afford. You thus have to disable the transient supervisors. In that case, OTP approach can limit your performance and become a bottleneck.

My view is that to get the best performance, you have to know and observe how the system behave in real world situation, for the specific use case. XMPP is a large protocol, especially with tens of XMPP Extension Protocols that have been added over time. If you want to scale you have to have a perfect knowledge of Erlang inside / out, but also a perfect knowledge of the XMPP protocol itself. Some requirements or suggested approach in the protocol do not scale out of the specification, and you have to take into account a full solution design, from the client behaviour itself to the cluster architecture and code optimizations.

Micro optimisations at the code level are doomed to be very limited. However, optimizing the full stack, from client (both desktop and mobile) to server, including specific code level optimisations, is a sure win. From experience, we can squeeze from 2 to 3 times more concurrent users on a single node. Your mileage might vary, but it clearly demonstrate that multiple levels of knowledge are involved in designing a scalable XMPP messaging solution.

I understand it is frustrating to hear that from a customer perspective: they often expect turnkey solutions that scale linearly. However, after a few times working with us, they understand our view and why scaling cannot rely on a one size fits all approach.

We have developed a set of modules for ejabberd and optimisations and a range of expertise at Process One down to the client. This allows us to scale to unprecedented levels. OTP offers nice patterns, but is no substitution for this experience working on the largest XMPP deployments in the world.



Categories: Companies  ProcessOne  

Comments

anonymous avatar

That is true. Some requirements or suggested approach in the protocol do not scale out of the specification, and you have to take into account a full solution design, from the client behaviour itself to the cluster architecture and code optimization. Regards, Nawshad

Posted by Tanim on 16 Jan 2012 at 21:10



 
anonymous avatar

huge system, with a lot of creation and destruction of workers, supervisors came up with a performance penalty you can not afford. So, you can temporarily disable the supervisor. In this case, the OTP approach may limit your performance and become a bottleneck.Golf Auction

Posted by Dang Bui on 26 Jan 2012 at 18:38



 
anonymous avatar

There have been many great players in the history of football, but a few stand out even among the greats. On this page we pay tribute to players   Cristiano Ronaldo

Posted by topplayer on 27 Jan 2012 at 07:26



 
anonymous avatar

We was very happy to see this great site I truly desire to endorse the following to most people does nono work since there’s no doubt around it’s material.

Posted by Sierra on 27 Jan 2012 at 14:02



 
anonymous avatar

This includes closing the knife before passing it to someone else. Scouts should cut away from themselves and never with the blade toward their own body. It is also unsafe to use the knife point to pry at an object, as it could break off and cause injury. Thanks a lot.
Regards,
Desert Ridge Real Estate AZ

Posted by Sree on 28 Jan 2012 at 13:23



 
anonymous avatar

In psychology, frustration is a common emotional response to opposition. Related to anger and disappointment, it arises from the perceived resistance to the fulfillment of individual will. The greater the obstruction, and the greater the will, the more the frustration is likely to be. Thanks.
Regards,
college paper writing service

Posted by jaffa on 30 Jan 2012 at 12:59



 
anonymous avatar

Related to anger and disappointment, it arises from the perceived resistance to the fulfillment of individual will. The greater the obstruction, and the greater the will, the more the frustration is likely to be plummer vinson

Posted by plummer vinson on 08 Feb 2012 at 07:56



 
anonymous avatar

Do you own a business? Well, for it to reach maximum potential you should know how to promote it.ooglaseren

Posted by leonardod on 08 Feb 2012 at 09:13



 
anonymous avatar

Very informative article. Pretty sure people would love to go to that place for shopping. Specially to those who are semi naughty or semi conservative people.simple smile

Posted by simple smile on 10 Feb 2012 at 17:29



 


Add comment

Name:

Email:

URL:

Smileys

Remember my personal information

Notify me of follow-up comments?