Welcome to CS 598 RAP - Storage Systems: Theory and Practice!

This course will cover an exciting set of topics in storage systems both local (e.g., key-value stores, file systems) and distributed (e.g., disaggregation, control-plane storage). We will strike a balance between reading old, influential papers and more recent ones from conferences such as OSDI, SOSP, EuroSys, FAST, and ATC. Some of the topics we will cover in this course:

  • Write-optimized storage systems
  • Crash consistency
  • Modern storage hardware and software (NVM, CXL, eBPF for storage)
  • Replicated storage systems
  • Consistency in replicated storage
  • Control-plane storage systems
  • Distributed file systems
  • Cold and Archival storage
  • Disaggregated memory

This course is a discussion-based, research-oriented one. That means,

  • There is no text and most (if not all) classes will be based on research papers.
  • The reading load will be somewhat heavy (2-3 papers each week); before each class, students are expected to read the assigned papers, and submit a review or answer a question related to the paper.
  • An important part of this course is a research project that you will do in a small team (2-3 members); a good project involves exploring a new idea or conducting an in-depth study, and could potentially be published in a good systems conference.

Reading and class participation: Because this course is reading-heavy, here is some good advice on reading papers: How to Read and Evaluate Technical Papers. I also encourage you to form small reading groups with other students to discuss the papers before the class. To keep the class interactive, often I will arrange for informal discussions and frequently engage via questions in the class. So, read the papers and do show up for the lectures!

Research project: You will explore a new research idea in your project. I will provide a list of problems/ideas to choose from. However, you are free to propose your own ideas. But please do talk to me about your ideas early on. We can brainstorm and refine them as needed. I strongly encourage to keep your group size to be two or three members. If the project involves implementing/measuring a complex system, I might allow more members. At the end of the semester, you will write a 8-page project report and also give a small 10-minute talk to the class.

At the end of the course you will

  • Be able to effectively read and evaluate systems research papers
  • Have a good understanding of fundamental problems in systems, specifically storage
  • Have experience working on a research project and communicating new results

Course Information

  • Who: Ram Alagappan (ramn@illinois.edu)
  • When: WF, 12:30PM - 1:45PM
  • Where: Campus Instructional Facility 2018
  • Office hours: Wednesdays 3-4pm (at 3304 Siebel) or by appointment
  • Text: There is no required text for this course. The lectures will be based on discussing research papers.
  • Paper reviews: Submit reviews on the paper-review submission website.
  • Course prerequisites: You can take this course if you are interested in getting involved in systems research. Undergraduate-level operating and distributed systems courses (here or elsewhere) will be very helpful. For any questions regarding the course enrollment, please talk to me.
  • Grading:
    • Class participation and review: 20%
    • Project proposal: 10%
    • Project checkpoint 1: 15%
    • Project checkpoint 2: 15%
    • Project final presentation and report: 40%

Statement on CS CARES and CS Values and Code of Conduct

All members of the Illinois Computer Science department - faculty, staff, and students - are expected to adhere to the CS Values and Code of Conduct. The CS CARES Committee is available to serve as a resource to help people who are concerned about or experience a potential violation of the Code. If you experience such issues, please contact the CS CARES Committee. The instructor of this course is also available for issues related to this class.