Tuesday, 19 January 2016

Notes on Concurrency and Distribution

In the age of distributed software applications, the focus of computing has shifted towards solving communication problems. In the industry, these problems are tackled by making domain specific assumptions, using strict communication protocols etc. Such approaches are troublesome as they require significant development effort and time. The non-determinism involved makes it very difficult to debug and document such applications. I’ve built large distributed systems and I’ve personally felt this problem. In addition to the nightmare of deployment and maintenance, these systems are largely unpredictable due to the convoluted dependencies. In addition, the problem worsens exponentially as the system grows due to the increased intercommunication between the components. 

 Ideally, we shouldn't have to worry about this at all. In the past, programming language principles have solved such low level problems. Programming languages have, as a result, been successful in providing powerful abstractions for effectively solving computational problems. 

What we need is a system and a programming model that provides a reliable abstraction to easily build and understand distributed applications. It would be fruitful to explore existing programming language principles and relevant ongoing research to solve distribution problems.

 I hope to do some research in this area and will be posting a summary of my findings and understanding every weekend. I would also like to understand the role of concurrency in distributed systems. So, I will be beginning with basic aspects of understanding concurrency, parallelism, distribution and then moving on to defining the actual problem before jumping into papers. I've realized that starting by reading papers can be quite misleading. 

During my trip to Bangalore, I've gotten some wonderful questions, comments and suggestions on the directions to look into from friends and folks at Papers We Love - Bangalore. Also got some comments from Prof. Shriram Krishnamurthi (from Brown University) on this topic - who was a speaker at one of the PWLB meetups. I will be trying to understand, answer and analyze all of these inputs in my coming up posts. This should be a good learning exercise for me too!


  1. Erlang! That's all you need ;)

  2. Falls under 'wonderful suggestions'. :)
    Yes, I do plan to study and evaluate Erlang as a part of this exercise.

  3. Very nice article!
    Thank y, it's very useful.
    secure data room

  4. this would be a topic that would interest most network administrators nachi thanks for sharing this awesome piece I know a couple of do my paper I could refer to this page