27
$\begingroup$

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.

$\endgroup$
1

7 Answers 7

22
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ I think this lecture notes is simple and good, Thanks a lot. $\endgroup$ Oct 1, 2012 at 19:36
11
$\begingroup$

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.

$\endgroup$
8
$\begingroup$

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.

$\endgroup$
6
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ Here's a secure link to the notes. The link given in the answer uses "http://" rather than "https://" causing some browsers, under certain settings, to refuse to download the PDF file. $\endgroup$
    – Evan Aad
    Jul 22, 2023 at 8:39
4
$\begingroup$

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.
$\endgroup$
1
  • $\begingroup$ Yes, Jukka Suomela is a smart researcher. I like his papers. $\endgroup$
    – AJed
    Oct 20, 2015 at 15:24
0
$\begingroup$

I would add Introduction to Reliable and Secure Distributed Programming by Christian Cachin, Rachid Guerraoui and Luís Rodrigues (amazon link).

This book is great as it builds from the fundamentals on the theory of distributed programming, with a large coverage on relevant topics like consensus and Byzantine agreement.

$\endgroup$
-2
$\begingroup$

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

$\endgroup$
2
  • 7
    $\begingroup$ Why does this answer OP's question? Please provide more information on the content of the book. $\endgroup$
    – Pål GD
    Feb 13, 2013 at 9:18
  • 2
    $\begingroup$ 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. $\endgroup$
    – AJed
    Feb 13, 2013 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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