

Ask HN: Recommendations for learning formal distributed systems? - ashishgandhi

I haven&#x27;t been able to find a good video lecture series that teaches about formal distributed systems. I don&#x27;t mind only textual things either. What is good place to start?
======
mindcrime
Maybe check out:

[http://www.quora.com/Massive-Open-Online-Courses-MOOCs/Is-
th...](http://www.quora.com/Massive-Open-Online-Courses-MOOCs/Is-there-any-
systems-Operating-systems-Distributed-Systems-course-being-offered-online)

[http://www.quora.com/What-are-the-seminal-papers-in-
distribu...](http://www.quora.com/What-are-the-seminal-papers-in-distributed-
systems-Why)

[http://www.quora.com/Which-are-the-best-papers-resources-
in-...](http://www.quora.com/Which-are-the-best-papers-resources-in-
distributed-algorithms)

[http://henryr.github.io/distributed-systems-
readings/](http://henryr.github.io/distributed-systems-readings/)

[http://book.mixu.net/distsys/single-
page.html](http://book.mixu.net/distsys/single-page.html)

[http://www.stanford.edu/class/cs347/reading/textbook.pdf](http://www.stanford.edu/class/cs347/reading/textbook.pdf)
(warning: huge PDF)

[http://cactus.eas.asu.edu/PARTHA/Teaching/531-common-
files/p...](http://cactus.eas.asu.edu/PARTHA/Teaching/531-common-
files/p419-tanenbaum.pdf)

[http://www.dre.vanderbilt.edu/~schmidt/PDF/CSI-
article.pdf](http://www.dre.vanderbilt.edu/~schmidt/PDF/CSI-article.pdf)

[http://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf](http://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf)

[http://net.pku.edu.cn/~course/cs501/2011/resource/2006-Book-...](http://net.pku.edu.cn/~course/cs501/2011/resource/2006-Book-
distributed%20systems%20principles%20and%20paradigms%202nd%20edition.pdf)
(warning: huge PDF)

[https://en.wikipedia.org/wiki/Paxos_%28computer_science%29](https://en.wikipedia.org/wiki/Paxos_%28computer_science%29)

[https://en.wikipedia.org/wiki/CAP_theorem](https://en.wikipedia.org/wiki/CAP_theorem)

[https://en.wikipedia.org/wiki/Two_Generals%27_Problem](https://en.wikipedia.org/wiki/Two_Generals%27_Problem)

[https://en.wikipedia.org/wiki/Byzantine_Generals%27_Problem](https://en.wikipedia.org/wiki/Byzantine_Generals%27_Problem)

------
tostitos1979
One questions you should ask is why you want to learn this topic. I spent
several years learning and I'm still of intermediate skill. I am now beginning
to realize that dist systems might be useful when it comes time to scale your
startup but likely not appropriate when you are first building the product.

Of course, if u are interested for love of knowledge that is another matter.

There are at least two old text books on dist systems. I have both but they
are pretty hard to read/abstract. I think the best way to learn is to read
academic papers. Read: dynamo, big table, cassandra, some papers on dhts like
chord.

I started reading seven dbs in seven week and am really learning a lot. It
doesnt focus on dist systems but when you see the different systems in action,
you get some useful insights. E.g. Think about how riak id different from
redis.

There was some group in new haven that was planning to host a two day seminar
on dist systems. If you search old hn submissions, youll find it.(sorry, dont
have a link handy as I am on vacay).

------
Throwadev
I'm interested in this too.

The only thing I've read so far is Fowler's "NoSQL Distilled". It's not
exactly a hardcore text but it does give a good overview of the different
types of databases, and the tradeoffs they make in terms of
consistency/availability.

