[erlang-questions] What makes erlang scalable?
Sat May 9 16:18:00 CEST 2015
The original paper of Joe is a start, even if Erlang and Otp had big evolutions since this time...
Le 9 mai 2015 15:40, Yash Ganthe <yashgt@REDACTED> a écrit :
> I am working on an article describing fundamentals of technologies used by scalable systems. I have worked on Erlang before in a self-learning excercise. I have gone through several articles but have not been able to answer the following questions:
> 1. What is in the implementation of Erlang that makes it scalable? What makes it able to run concurrent processes more efficiently than technologies like Java?
> 2. What is the relation between functional programming and parallelization? With the declarative syntax of Erlang, do we achieve run-time efficiency?
> 3. Does process state not make it heavy? If we have thousands of concurrent users and spawn and equal number of processes as gen_server or any other equivalent pattern, each process would maintain a state. With so many processes, will it not be a drain on the RAM?
> 4. If a process has to make DB operations and we spawn multiple instances of that process, eventually the DB will become a bottleneck. This happens even if we use traditional models like Apache-PHP. Almost every business application needs DB access. What then do we gain from using Erlang?
> 5. How does process restart help? A process crashes when something is wrong in its logic or in the data. OTP allows you to restart a process. If the logic or data does not change, why would the process not crash again and keep crashing always?
> Most articles sing praises about Erlang citing its use in Facebook and Whatsapp. I salute Erlang for being scalable, but also want to technically justify its scalability.
> Even if I find answers to these queries on an existing link, that will help.
More information about the erlang-questions