Florida International University

CIS 5346 – Storage Systems 

Course Syllabus


  • Janki Bhimani
  • Office: CASE 238B
  • Telephone: (305) 348 9934
  • E-mail: janki.bhimani@fiu.edu


Preferred Prerequisites

COP 4610 Operating Systems Principles or equivalent

CDA 4101 Computer Organization or equivalent


Course Description and Purpose

 Data creation is exploding. 92% of the world’s data was created in the last two years alone. Storage systems are among the most fascinating and the most essential parts of computer systems. Storage systems often dominate the performance of a system, and their components’ inner workings require amazing feats of engineering. The success of many young and cool companies, such as Google, Facebook, and Youtube, is derived from their ability to efficiently and reliably store large amounts of data. The exponentially growing need for data capacity and access speed is making storage systems one of the fields with the most robust demand for bright people, both in industry and in academia.

This is an advanced class that will cover storage systems, defined as any software/hardware system that performs any sort of I/O related to storage stack and file systems. This course covers the characteristics and operation of storage devices and the design, implementation, and use of storage systems. Along the way, we will examine several case studies of real systems, demands placed on storage systems by important applications, and impacts of trends and emerging technologies on future storage systems.

Thus, in this class, you will learn about the latest and greatest in storage systems, studying novel ideas from academia, and learning about the best “real-world” systems. You will learn how to read, interpret, understand, and learn from top-quality research articles, and also perform a cutting-edge mini-research project, where you design, build, evaluate, and write a research paper. Students are expected to demonstrate a high level of independence, critical thinking, and initiative.


Course Goal

 By the end of this course, students should be able to master the art of reading and understanding research articles. They will understand the process of creating new knowledge and the important components of writing a good research article. They will learn the technical concepts related to storage system management and components, storage devices such as hard disks (HDDs), flash-based solid-state drives (SSDs), and emerging variants such as multi-stream SSDs, key-value SSDs, and non-volatile persistent memories like Optane, files, directories, and file-system implementations, storage architecture, trends and applications, performance, RAID storage, I/O scheduling, and storage management.



Course Objectives

 Upon completing this course, students will be able to:

  • Identify the use of different storage system components.
  • Compare the efficiency of different storage system architectures and optimize their algorithms.
  • Evaluate the correctness and efficiency of different I/O stack constructed using different storage devices.
  • Learn to articulate challenges of using emerging memory and storage technologies.
  • Learn to read and summarize high-quality research articles.
  • Collaborate effectively to generate new knowledge.
  • Learn to value and innovate new data storage management solutions to solve evolving problems.


Pillars Of Course Design Philosophy

  • Teach to learn
  • Understand more than memorizing
  • Evolve with hands-on experience



Before starting this course, please review the following pages:


Course Structure and Requirements

  • This class will be module-based, part instruction and part seminar-style learning based on reading, understanding, discussing, and presenting both classic and current research in storage systems.
  • A term project that involves thorough studying, innovating, evaluating, and writing up an exciting systems research issue related to the problems and techniques discussed in class.
  • Research paper readings to develop a clear understanding of the state of the art, lead to open debate conversations and to find the solution to interesting research problems.
  • Quizzes and Discussions throughout the semester to examine the understanding of all students.
  • No midterm or final exam.



    • The primary goal of the project component is for class members to gain research experience by designing and exploring an interesting storage systems problem.
    • The storage systems problem should explore issues, solve problems, or exploit techniques from classroom discussions or papers.
    • By the end of the semester, students will have to produce a high-quality technical paper.
    • Projects will be of research orientation, having the potential to lead to a research publication eventually.
    • Deliverables related to the semester project are a formal Project Proposal, Mid-term Project Report, Final Project Code, and Final Project Presentation and Research Paper.


Read and Watch

    • The instructor will provide video lectures to teach concepts related to each Module.
    • The instructor will provide basic materials such as textbooks chapters to read and understand for various technical concepts covered in each Module.
    • Advanced material will be mostly from recent research papers in the area of Storage Systems.
    • Each student will need to watch the video lecture and complete reading assignments to attempt Quizzes and Discussions for each Module.


Potential List of Reading Topics

    • Introduction to storage systems
    • Storage devices (Hard Disk Drives, Solid State Drives)
    • Storage system components
    • Storage architecture
    • Large-scale distributed storage systems
    • Datacenter storage
    • Non-volatile memory (NVM)
    • Reliability and fault tolerance (RAID Systems)
    • Performance
    • File-systems
    • Operating Systems Storage Management
    • Memory and storage concepts (Caching, Consistency, and Deduplication)
    • Disks and scheduling
    • Emerging Storage Technologies and Future Trends



  • Checking comprehension and improving higher-level thinking
  • How to Prepare for a Multiple Choice Quiz?
    • Read and watch video lectures BEFORE attempting the quiz of each Module.
    • Review lecture notes as soon after the lecture as possible.
    • Combine and cross-reference concepts from the textbook with concepts discussed in lectures.
    • Test your ability to distinguish concepts and ideas by the use of comparing and contrasting.
    • Construct diagrams, charts, tables, and lists to summarize relationships.
    • Test your ability to understand and recall information by writing down everything you can remember about specific topics without using your notes or textbook. This will help you recognize topics that you may need to spend more time studying.
    • Review your notes and textbook from before Modules and identify the major concepts that have been covered.  You should not be learning the information for the first time…this should be a review!
  • How to Take Quiz?
    • Only a single attempt is allowed, do figure out the time that you can spend continuously and make the most out of this attempt.
    • Try to answer the question before looking at the answers. Attempt to anticipate the correct response prior to seeing the options that have been provided. But, make sure you read every answer before choosing.
    • Eliminate options you know to be incorrect. It may be helpful for you to jot down why this option has been eliminated.
    • “All of the above” is a strong possibility for an answer if you can verify that more than one of the other responses is correct.
    • Avoid choosing answers that are unfamiliar or that you do not understand. If you have studied carefully, a choice that is unfamiliar to you is probably incorrect. If you don’t recognize the answer because you didn’t prepare adequately, this tactic does not apply!
    • Use exam questions to help you answer other exam questions. Correlating information between questions may assist you in finding the right answers.
    • Do not spend too much time on any one question.
    • Do not keep changing your answers. Stick with your first impression, unless you misread the question the first time. Be careful not to read things into the questions that aren’t there.
    • Overall, remember that you are looking for the BEST possible answer provided among the options.

Mandatory Outside Class Activities

To take this course, you must:

  • Read materials and watch video lectures.
  • Identify the application for the storage systems learned in class.
  • Formulate the problem definition to frame the problem statement.
  • Practice writing proper documentation of experiments conducted and articulating the process clearly into paper.
  • Practice reading research articles. Develop the skill of understanding the high-quality technical articles written by others.
  • Develop the clarity of concepts to understand the storage system components for constructing your own solutions to evolving problems.


Course Grade Summary

  • Semester Research Project       

    ·      Study          10%

    ·      Innovate      10%

    ·      Evaluate     10%

    ·      Document   10%


    ·      Content quality               10%

    ·      Peer feedback quality    10%

    Quiz                                                                          20%
    Class participation 20%

Letter Grade Distribution Table

Grades are determined from the total points as follows and may be curved to percentiles:







A 94 -100 B 80 – <84 C 40 – <60
A- 90 – <94 B- 70 – <80 D 30 – <40
B+ 84 – <90 C+ 60 – <70 F <30



  1. Operating Systems: Three Easy Pieces by Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau

Basic material will be provided by the instructor. Advanced material will be mostly from recent research papers in Storage Systems.

The following reference books will also be used:

  1. Linux Kernel Development, Third Edition, Robert Love, Addison Wesley
  2. Operating System Concepts, Seventh Edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne, John Wiley & Sons, Inc.
  3. Computer Architecture: A Quantitative Approach, Hennessy and Patterson Morgan Kaufmann; 3rd edition (May 15, 2002)



Students are expected to:

  • Review overview and student resources module located in the course modules tab;
  • Introduce yourself to the class during the first week by posting a self-introduction in the appropriate discussion;
  • Take the practice quiz of academic honesty policy to ensure that your computer is compatible with the learning management system, Canvas;
  • Interact online with instructor and peers;
  • Review and follow the course calendar and weekly outlines;
  • Log in to the course at least two times per week;
  • Respond to discussions by the due date specified. No late work will be accepted;
  • Respond to emails within one day;
  • Submit assignments by the corresponding deadline.

The instructor will:

  • Log in to the course every week;
  • Respond to discussion postings within two weeks of the deadline;
  • Respond to emails within 24 working hours;
  • Grade quiz within 24 working hours of the deadline.
  • Grade assignments and projects within 4 weeks of the deadline.


Course Communication

Communication in this course will take place via the Canvas Inbox. Check out the Canvas Conversations Tutorial or Canvas Guide to learn how to communicate with your instructor and peers using Announcements, Discussions, and the Inbox. I will respond to all correspondences within 24 working hours.


Discussion Forums

Keep in mind that your discussion forum postings will likely be seen by other members of the course. Care should be taken when determining what to post.

Your discussion posts must:

  • Be at least 250 words in length
  • Add quality content to the conversation (e.g., not simply “I agree”)
  • Be free of grammatical errors


Zoom Video Conference

Zoom is a video conference tool that you can use to interact with your professor and fellow students by sharing screens, chatting, broadcasting live video/audio, and taking part in other interactive online activities.

Zoom meetings can be accessed via the Zoom link in the course navigation menu. Once you click on the Zoom link, it will route you to join the meeting for the respective class session. You will also be able to view upcoming meetings, previous meetings that you have already joined, and meeting recordings. Before joining an actual class session:

If you encounter any technical difficulties, please contact the FIU Canvas Help Team. Please ensure you contact support immediately upon the issue occurring. 


* Everything here is subject to change.