* Enrollment Policy
This course only accepts enrollment through sign-up applications (加簽). Any
student is welcome to participate the first two weeks of the classes to get a
better idea about how the organization and course. The performance in these two
weeks will be evaluated by the instructor for making the final enrollment
decision.
You should read the following papers before considering for the enrollment.
1. Brewer's conjecture and the feasibility of consistent, available, partition-
tolerant web services
2. CAP Twelve Years Later How the “Rules” Have Changed
3. A Critique of the CAP Theorem
4. Perspectives on the CAP Theorem

* Text Books
50+ published papers and online documentations.

* References
We will read the present the latest papers from ACM Digital Library, IEEE
Xplore, and Google Scholar.

* Teaching Method
Paper presentations by students, followed by in-depth discussion and labs.


* Syllabus
Students will be assigned to present the papers in the following topics. When
they are not presenting, they need to actively participate in course
discussions.

Topic1: Fundamental Theorems
+ CAP Theorem
+ Time, Clocks, and the Ordering of Events in a Distributed System

Topic2: Consensus & Consistency Protocol
+ Paxos, Raft
+ Quorum
+ Consistency models: eventual & casual consistency

Topic3: Distributed Storage Systems
+ CephFS, Lustre, AndrewFS, Chord
+ Caching Systems
+ Erasure Cosing

Topic4: Inter Process Communications
+ Message systems
+ Publish/Subscribe systems

Topic5: Big Data Processing Systems
+ Google File System
+ NoSQL Database: BigTable, Hive, DynamoDB
+ Parallel data processing systems: MapReduce, Spark

Topic6: Resource Managers & Schedulers
+ Brog, Omega, Kubernetes, Mesos, YARN, SLURM

* Labs:
1. Kafka & Prometheus
2. CephFS & MinIO
3. Redis & Memcached
4. gRPC & Restful API
5. Kubernetes & Etcd

* Evaluation
1. Paper presentation – 40%
2. Course Participation (QA & class notes) - 20%
3. Lab Assignments – 5%
4. Final Project – 35%