Distributed Systems and Erlang Programming
This course will teach the foundation, implementation, applications of distributed systems. It will cover basic methods to handling concurrency, such as transactions, replication, and communication. Then, look at design of "real-life" scalable distributed computing systems, such as Map-Reduce (Google, Hadoop), Non-SQL storage (Amazon's Dynamo). In the course students will get hands-on experience with implementing the shown methods and systems. For this course we will introduce the programming language Erlang; a functional language that is designed to handle concurrency. Methods for making reliable implementations will be covered. The course will end with a larger assignment, where students pairwise will reliably implement a larger distributed system.
The course will be based on material that is freely available to the students
* Distributed Systems: - Selected book chapters - Scientific papers
* Erlang: - Learn you some Erlang for great good!
http://learnyousomeerlang.com/ (If you prefer books, this can be bought.)-
* Armstrong: Making reliable distributed systems in the
presence of software errors
Michael Kirkedal Thomsen
Ort & Zeit:
V 2 SWS, Mi 10:00 - 12:00 Uhr, MZH 3150
Ü 2 SWS, Mi 14:00 - 16:00 Uhr, MZH 3150