Distributed Systems Shape Revamped

I revamped my distributed systems course. I cutting out algorithms that create non receive got much practical utilization ---even though they are elegant--- such every bit dining philosophers, termination detection, too self-stabilizing token telephone algorithms. I increased coverage of modern distributed systems (distributed databases, large information analysis systems, too cloud computing services).

The novel lean too hateful course of report schedule

The outset half dozen weeks of the course of report covers the fundamentals, too the minute role covers the technologies that construct on these foundations.
  • Introduction, 2 phase-commit
  • Reasoning nigh distributed programs, safety/progress
  • Consensus, Paxos
  • Failure detectors, Faults too fault-tolerance
  • Time: logical clocks, State: distributed snapshots

  • Datacenter computing, Cloud computing
  • NoSQL databases, CAP theorem, Distributed databases
  • Big data, Big information analytics
  • Decentralized ledgers too blockchains

I believe it is of import to learn reasoning nigh distributed programs. I don't await the students to seek invariants nigh distributed programs, but I desire them to empathise too internalize the concept: Each activity of the programme should save the invariant (starting from a Earth satisfying the invariant). Then the induction does its job, too regardless of which social club the actions are executed at whatever of the processes, the invariant yet holds for the distributed system.

Also, inwards the outset part, I receive got a lot of fourth dimension to brand certain I learn Paxos right. I give TLA+ specifications for Paxos. I acquire students to role-play Paxos nether several scenarios hence they tin empathise how Paxos covers all possible corner cases.

For the minute part, I believe it is of import for the students to empathise that existent systems involve tradeoffs. In social club to assistance students develop critiquing skills, I assign several papers to read on a topic, too inquire students to write a critical review of 1 of the papers every bit the assignment. The students initially divulge critical reading hard, but too hence they acquire to appreciate the experience.

Teaching rigorously tin sometimes last frustrating, because many students are only looking for an slow course of report too getting done amongst the material. Many students are turned off, when I start talking nigh invariants, consistency guarantees, using TLA+, critiquing tradeoffs inwards distributed systems. But I seek non to compromise the character too rigor inwards the course, because I know that at to the lowest degree one-half the students are motivated, too they deserve to acquire a proper introduction to the field.
Hello Professor, 
Hope you're doing well. I was a Computer Science Masters educatee who graduated final twelvemonth inwards Feb. During my masters, you lot were our Distributed Systems professor, too I wanted to give thank you lot you for the means inwards which you'd taught the course. Reading diverse papers, too thinking nigh them is a nifty means of agreement too reasoning nigh them. Although, I didn't fully appreciate this method spell truly studying the course. 
However, 3 months ago, only out of curiosity, I started reading the Dynamo DB paper, this fourth dimension amongst exclusively 1 goal, to receive got every bit much fourth dimension every bit required, to read it purposefully, to internalize it properly. And, it took almost fifteen days to empathise almost 95% of the paper. I spent all my commute reading it. By the fourth dimension I finished reading it, I was non exclusively able to empathise how the diverse smaller components check together, I was able to appreciate the beauty of those complex systems. That I feel, what your goal was! And since then, I've read v other papers similar Paxos, Aurora, BigTable, Zookeeper, Spanner too I volition cash inwards one's chips on to read more. 
I've right away realized what I desire to operate towards inwards the long term, too would similar to give thank you lot you for your teaching, which receive got been a crucial inwards shaping my thoughts. :) 
Thank you lot Professor! It's been a privilege!
Best Regards,

Textbook

I don't follow a textbook because at that spot isn't a practiced textbook on modern distributed systems. Some of the textbooks are also theoretical. Most of them are nigh regurgitating the existing algorithms too subsystems. That is no means to larn a material. When you lot read a description of an algorithm from a book, you lot would enjoin "yeah that should work", but fifty-fifty if that was an wrong algorithm, too you lot would yet say, "yeah that should work". By only reading a description of something too knowing its name, you lot don't larn that thing. You should acquire a sense of why it works, how does it embrace corner cases, why is it designed inwards this item means out of a dozen alternatives.

I refer the students to 2 gratis textbooks if they desire to a greater extent than or less reference material:
+ Maarten van Steen Andrew S. Tanenbaum. Distributed Systems
+ Paolo Sivilotti, Introduction to Distributed Systems, 2005 (This is useful for learning nigh reasoning nigh distributed algorithms.)

I seek to maintain an opened upwards hear nigh textbooks, hence if you lot receive got a textbook to recommend, permit me know.

Project

I give a TLA+ projection each semester. Since I learn the course of report amongst an emphasis on reasoning nigh the correctness of distributed algorithms, TLA+ is a practiced check too complement for my course. Integrating TLA+ to the course of report gives students a means to acquire a hands-on experience inwards algorithms pattern too dealing amongst the intrinsic complexities of distributed systems: concurrent execution, asymmetry of information, concurrency bugs, too a serial of untimely failures. TLA+ has a lot to offering for exercise too implementation of distributed systems every bit well. At Amazon too Microsoft, engineers utilization TLA+ for modeling production systems that come across a lot of updates too novel features. TLA+ helps the engineers divulge several critical bugs introduced past times updates/features inwards the pattern stage, which if non constitute would receive got resulted inwards large total of technology scientific discipline attempt after on.

Ideally I would also similar to give a programming projection using our Paxi framework. Paxi provides most of the elements that whatever Paxos implementation or replication protocol needs, including network communication, Earth automobile of a key-value store, customer API, too multiple types of quorum systems. The developer exclusively needs to fill upwards inwards 2 modules for describing the distributed coordination protocol (many Paxos variants are already implemented using Paxi). In social club to furnish a leveled playground for protocol evaluation too comparison, Paxi also includes benchmarking back upwards to evaluate the protocols inwards damage of their performance, availability, scalability, too consistency.

Ailidani has implemented Paxi inwards Go programming linguistic communication too made it available every bit opensource at https://github.com/ailidani/paxi. (It has been starred to a greater extent than than 300 times on GitHub.)

On the other hand, I don't desire to burden students farther past times yell for them to larn Go too hack on Paxi, every bit they receive got a lot of other things going at this course of report too 2-3 other courses they are taking inwards the same semester. Moreover the course of report has to a greater extent than than 150 students, too supporting extra projects at a course of report of this size require to a greater extent than resources than nosotros are provided with. As a middle ground, I volition assign students who desire to acquire the extra distance optional/ungraded projects inwards Paxi. Some examples nosotros are thinking of are: Mencius, RingPaxos, ScatterNet, Reconfiguration strategies, Vector-clock based multi-master replication, PBFT, too to a greater extent than or less decentralized ledgers protocols. If you lot are interested inwards hacking on this, you lot are welcome to seek on your own, and contact us if you lot receive got questions.

Here are the couplet outset lectures of my course. At the terminate of the semester, I volition regard making all the lectures available on GitHub.

In the side past times side post, I volition furnish the reading listing for my distributed systems class. It is long, too it is amend to give it separately.

0 Response to "Distributed Systems Shape Revamped"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel