Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

What's the best way that anyone can do to have a good introduction to the theory of distributed system, any books or references, and topics should be covered first and requirements to start learning in this topic.

share|improve this question

6 Answers 6

up vote 9 down vote accepted

Roger Wattenhofer's Principles of Distributed Computing lecture collection is also a good place to start.

It is freely available online, it assumes no prior knowledge on the area, and the material is very well up-to-date — it even covers some results that were presented at conferences a couple of months ago.

share|improve this answer
    
I think this lecture notes is simple and good, Thanks a lot. –  Sameh Kamal Oct 1 '12 at 19:36

A good start would by Distributed Systems by Nancy Lynch. It is perhaps a little dated, but nothing is wrong with the book as such. An impossibility result does not change with time.

share|improve this answer

Both of the books mentioned in the other posts are good, however I like:

  • Design and Analysis of Distributed Algorithms, Nicola Santoro.
  • Introduction to Distributed Algorithms, Gerard Tel.

Lynch and Wattenhofer, two big names in Distributed systems theory, focus "a lot" on synchronous systems. On the other hand, Santoro and Tel focuses more on asynchronous systems (without forgetting synchronous systems). Their opinion is that synchronicity of a distributed system is an "additional assumption" ! (that is, by nature, a distributed system is asynchronous). Given this, you will find more focus on message complexity, while on the other books the focus is given to time complexity. It is a different school in distributed computing in my opinion.

N. Santoro book was the book I used for studying (N. Santoro is my teacher actually). Following the book, you would master the main fundamental ideas of distributed computing. It is based on course notes, and research the author was involved in. This is why it is not the most complete book. But it s very well written !

For G. Tel book, there is an interesting level of formalism. I like that he includes a chapter for self-stabilizing distributed algorithms. I think it contains more topics than N. Santoro book.

Another book widely available is Distributed Computing (Attiya and Welch - two well known scholars with great impact on the field). I used it as a reference for few times, but i cant give a judgment.

share|improve this answer

All of the mentioned books are awesome, but I recommend you the James Aspnes Notes on Theory of Distributed Systems. It is a very good and up-to-date book that explores theory aspects of distributed systems. It is also free!

I used this notes when I was TA and students were very happy about it. It has many questions with their solutions.

share|improve this answer

A Course on Deterministic Distributed Algorithms by Jukka Suomela.

Is about:

  • distributed systems as a model of computation.
  • distributed algorithms in the port-numbering model.
  • optimisation problems about vertex covers and edge dominating sets.
  • networks with unique identifiers.
  • ramsey theory and application of the theory.
share|improve this answer

The book Distributed Systems: Concepts and Design by George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair.

share|improve this answer
6  
Why does this answer OP's question? Please provide more information on the content of the book. –  Pål GD Feb 13 '13 at 9:18
2  
Although it is not me who downvoted .. but this book does not treat the theoretical aspects of distributed computing from a computer science perspective. It is more of an engineering book. In any case, I guess that it answers the question above. –  AJed Feb 13 '13 at 15:14

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.