I've been reading text books about distributed algorithms. They usually present a large collection of algorithms under various hypothesis and guarantees, with their proof of correctness. But they often fail to mention the practical application of those algorithms, and their relative usefulness and importance. For instance, various forms of broadcast, snapshot, election, consensus...

My questions are :

  1. What are the most fundamental distributed algorithms (the few ones that you really need to know)
  2. Could you give me very concrete cases where they are used
  3. What are the most widely used distributed algorithms

Thanks in advance. I'm feeling overwhelmed :)

  • 1
    $\begingroup$ Well, the whole Internet is based on distributed algorithms. Cloud computing, distributed databases, robotics, mobile communications, collaborative games .. perhaps, the question should be more specific as - what applications can be found for this distributed algorithm (or this distributed algorithm problem). $\endgroup$ – AJed Feb 13 '14 at 20:02
  • $\begingroup$ Sorry if my question isn't specific enough. I'd like to know what specific algorithms are used in what application? I'm talking about algorithms such as "benor", termination or deadlock detection, distributed snapshot, causal broadcast, self stabilizing algorithms, distributed mutual exclusion and so on.. I wonder where all those fancy algorithms are used. $\endgroup$ – Nemo Feb 13 '14 at 20:50
  • $\begingroup$ This question is both too broad (you could write an entire book about it, and people probably have) and too opinion-oriented (it is subjective and calls for opinion). Finally, "big list of X" questions are usually not appropriate for this kind of site. For all these reasons, this question is not a good fit for this site. I encourage you to visit the help center to learn more about what kinds of questions are appropriate here. $\endgroup$ – D.W. Feb 13 '14 at 22:03
  • $\begingroup$ Basically, in my opinion, there is a huge gap between distributed computing theory and practical distributed systems. $\endgroup$ – hengxin Jun 6 '14 at 3:31