CSCI 8980
Spring 2018

Class Information
Lecture Schedule and Notes
Reading List of Papers
Coursework Submission (Moodle)
Grades (Moodle)
Class Forum (Moodle)
Library Webpage
Examples
Useful Resources
CSCI 5103
Advanced Topics in  Distributed Systems

CSCI 8980   -   Spring 2018



Course Objectives

This course presents the fundamental concepts and principles underlying the designs and architectues of large-scale distributed systems. Specific focus of this course is on techniques for realizing fault-tolerance, scalability, and availability of such systems. In the context of global scale computing infrastructures, such as the Cloud computing platforms, these design methods have crucial in building large-scale systems. The objective of the course is to prepare students to be involved in research and development of such systems.


Prerequisites

CSci 5105 Distributed Systems and CSci 5103 Operating Systems

 

Class Times:

Lecture:

Mondays and Wednesdays 4:00--5:15 pm  (Mechanical Engineering Room 102)


Instructor:

Name:

Anand Tripathi

email:

tripathi  umn   edu

Phone:

612-625-9515

Office Hours:

Tuesdays and Thursdays:  3:00-4:00 pm KKKH 5-205

 


Course Description and Format

Prerequisite: CSci 5105 (Distributed Systems) and CSci 5103 (Operating Systems) or equivalent

 

Course Format: The course is structured as a mix of formal lectures by the instructor,  and classroom discussions  with active involvement of students, based on the papers from the reading list papers. This course involves studying close to 50 papers on  seminal topics in distributed systems. These paperes would cover the various topics listed below and represent the cutting-edge technoligies.

 

Each week 2-3 papers would be discussed. . On each lecture day, two students would work with the instructor in leading and moderating the discussions.

Lectures: 65%; and Student Presentations/Discussions 35%

Course Description: The objective of this course is to learn design principles and techniques for building highly available and scalable distributed computing systems. This course presents the fundamental concepts and principles underlying large-scale distributed computing systems. Specific focus of this course is on techniques for realizing fault-tolerance, scalability, and availability of such systems. With the availability of global scale computing infrastructures, such as the Cloud computing platforms, these design methods become crucial in building large-scale systems. The course also focuses on the software stacks provided by Hadoop and Spark for large-scale distributed computing. The following topics in this course will cover fundamental principles as well as case studies based on several existing systems:

  •  Process coordination in distributed systems; logical clocks and causality of events
  • Group communication: atomic broadcast and causal broadcast protocols
  • Message Queue Models and Systems: Kafka, RabbitMQ, Apache ActiveMQ, Apache SQS
  • Agreement and consensus problems: failure models; Byzantine Agreement; Paxos protocol;
  • Gossip and epidemic protocols
  • P2P system architectures: Gnutella, Napster, BitTorrent. Kazza; P2P applications
  • Distributed storage systems: Distributed hash tables; P2P storage systems: Chord, Dynamo, Cassandra; key-valued based NoSQL models – Google Bigtable, Hadoop/HBase
  • Publish/Subscribe models – topic-based and content-based models and system architectures
  • Location-bases services and context-aware computing
  • Access control and authentication protocols in distributed systems; Bitcoin and Blockchain protocol
  • Data replication management and consistency models: serializability; atomic transactions; weak consistency models -- causal consistency; release consistency; snapshot isolation model; eventual consistency
  • Distributed File system Architectures: Google file system; Hadoop Distributed File System (HDFS)
  • Parallel programming systems for cluster based systems: MapReduce, Pregel/Giraph, DistributedGraphLab, Beehive
  • Hadoop and Spark Software Stacks for Cloud/Cluster Computing


GRADING: 

 

20% Class attendace, presentation/discussions (short in-class quizzes)
20% points for writing paper highlights/critiques (300-500 words)
30% One project (group of 2-3 students) (may require CSElab cluster access)
30% One individual term paper surveying a specific topic in distributed systmes(Draft Feb 15; Final draft Apirl 25)

NO  EXAMS


Additional Resources

The references page lists numerous online resources which you may find useful.  

 

Additional Information:

Student Conduct Code and Scholastic Dishonesty:

 

You must be fully cognizant of the following policies regarding academic integrity and scholastic dishonesty.

All students are expected to abide by the "Student Conduct Code".See
Board of Regents Student Conduct Code 
Please be cognizant of the following documents related to policies on scholastic dishonesty.

All cases will be reported to the Office for Student Conduct and Academic Integrity (OSCAI).
Please see the following important documents related to academic integrity and scholastic dishonesty:

  • Departmental Academic Conduct Policy for Students in Computer Science classes
  • Frequently Asked Questions on Academic Conduct
  • Office for Student Coduct and  Academic Integrity FAQ
  • Board of Regents Student Conduct Code  Students are expected to abide by the "Student Conduct Code"

You are expected to do your own academic work and cite sources as necessary. Failing to do so is scholastic dishonesty. Scholastic dishonesty means plagiarizing; cheating on assignments or examinations; engaging in unauthorized collaboration on academic work; taking, acquiring, or using test materials without faculty permission; submitting false or incomplete records of academic achievement; acting alone or in cooperation with another to falsify records or to obtain dishonestly grades, honors, awards, or professional endorsement; altering, forging, or misusing a University academic record; or fabricating or falsifying data, research procedures, or data analysis. (Student Conduct Code: http://regents.umn.edu/sites/default/files/policies/Student_Conduct_Code.pdf) If it is determined that a student has cheated, he or she may be given an "F" or an "N" for the course, and may face additional sanctions from the University. For additional information, please see: http://policy.umn.edu/Policies/Education/Education/INSTRUCTORRESP.html
.

Cheating and other forms of scholastic dishonesty will not be tolerated.  Such activities include:

  • Consulting and seeking help from others (students or non-students) on assignments and exams when asked to do an assignment problem individually.

  • Consulting and seeking help from others not in your group (students or non-students) on assignments when asked to do an assignment problem in a designated group.

  • Cheating on exams. Consulting others or using any material which is not permitted on the exam.

  • Copying material from some source, such as the Internet or books, and presenting it as you own solution or design when asked to solve a problem yourself.

  • Attempt to change an already graded assignment and asking for re-grading of that material.

  • Attempts to fabricate the submission date/time of a late assignment to make it appear like an on-time submission.

  • Stealing some other student's solution or program.

  • Submitting solutions prepared by the TAs and the instructors during the prior years of the course offering.

  • Obtaining information through the Internet and submitting it as your own work on an assignment.

  • Purchasing a solution for your assignment from someone.

  • All group programming assignments must be done together and each group member must be fully involved in all aspects of programming.

  • You are responsible for protecting your assignment files, program code, and data on your personal computer or account.

  • Giving access to your personal computer or account to another student thereby enabling the student to access to your assignmentadn work.

  • Helping or abetting another student in cheating or scholastic misconduct.

You must be fully cognizant of the CSE Lab Acceptable Use Policy.  All CSE public labs users should be familiar with the full content of this document. However, in the interests of brevity, here are the basic ideas:

  • Do not use your account for illegal, unethical, or unauthorized purposes.
  • Protect your data with the correct file permissions, and respect others' privacy.
  • Do not share your account and passwords with anybody
  • Contact the system administrators if you have questions, comments, or concerns about CSE's public computing labs.
  • Only use resources that have been deliberately allocated to you, i.e., do not try to circumvent security or administrative measures on the systems.
  • Become familiar with the system, and avail yourself of all the resources for which you have authorization.

Any case of cheating or scholastic misconduct will immediately result in an F GRADE . Additionally, the matter would be forwarded to the Office for Student Conduct and Aacdemic Integrity.




Makeup Work and Legitimate Absences
Students will not be penalized for absence during the semester due to unavoidable or legitimate circumstances. Such circumstances include verified illness, participation in intercollegiate athletic events, subpoenas, jury duty, military service, bereavement, and religious observances. Such circumstances do not include voting in local, state, or national elections. For complete information, please see: http://policy.umn.edu/Policies/Education/Education/MAKEUPWORK.html.

 

Appropriate Use of Classnotes and Course Materials
Taking notes is a means of recording information but more importantly of personally absorbing and integrating the educational experience. However, broadly disseminating class notes beyond the classroom community or accepting compensation for taking and distributing classroom notes undermines instructor interests in their intellectual work product while not substantially furthering instructor and student interests in effective learning. Such actions violate shared norms and standards of the academic community. For additional information, please see: http://policy.umn.edu/Policies/Education/Education/STUDENTRESP.html.

 

Disability Arrangements

The University of Minnesota is committed to providing equitable access to learning opportunities for all students. Disability Services (DS) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations.

If you have, or think you may have, a disability (e.g., mental health, attentional, learning, chronic health, sensory, or physical), please contact DS at 612-626-1333 to arrange a confidential discussion regarding equitable access and reasonable accommodations.

If you are registered with DS and have a current letter requesting reasonable accommodations, please contact your instructor as early in the semester as possible to discuss how the accommodations will be applied in the course.

For more information, please see the DS website, https://diversity.umn.edu/disability/.

 

Sexual Harassment
"Sexual harassment" means unwelcome sexual advances, requests for sexual favors, and/or other verbal or physical conduct of a sexual nature. Such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance or creating an intimidating, hostile, or offensive working or academic environment in any University activity or program. Such behavior is not acceptable in the University setting. For additional information, please consult Board of Regents Policy: http://regents.umn.edu/sites/default/files/policies/SexHarassment.pdf

 

Mental Health and Stress Management
As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance and may reduce your ability to participate in daily activities. University of Minnesota services are available to assist you. You can learn more about the broad range of confidential mental health services available on campus via the Student Mental Health Website: http://www.mentalhealth.umn.edu.

 

Academic Freedom and Responsibility

Academic freedom is a cornerstone of the University. Within the scope and content of the course as defined by the instructor, it includes the freedom to discuss relevant matters in the classroom. Along with this freedom comes responsibility. Students are encouraged to develop the capacity for critical judgment and to engage in a sustained and independent search for truth. Students are free to take reasoned exception to the views offered in any course of study and to reserve judgment about matters of opinion, but they are responsible for learning the content of any course of study for which they are enrolled.*

Reports of concerns about academic freedom are taken seriously, and there are individuals and offices available for help. Contact the instructor, the Department Chair, your adviser, the associate dean of the college, or the Vice Provost for Faculty and Academic Affairs in the Office of the Provost. [Customize with names and contact information as appropriate for the course/college/campus.]

* Language adapted from the American Association of University Professors "Joint Statement on Rights and Freedoms of Students".