Florida International University

CIS 5346 – Storage Systems 

Course Syllabus

Instructor

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

IMPORTANT NOTE: I take plagiarism very seriously and would report to Office of Student Conduct and Academic Integrity (SCAI) https://dasa.fiu.edu/all-departments/student-conduct-and-academic-integrity/ (Links to an external site.) if I see your submitted documents including all the code files, scripts, libraries, README, and research paper are similar to any online source or other students.

 

Preferred Prerequisites

– COP 4610 Operating Systems Principles or equivalent

– CDA 4101 Computer Organization or equivalent

– Strong system programming knowledge

 

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, 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

 

Policies

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.
  • 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.
  • Project to write a literature survey paper in LaTeX using Overleaf, synthesizing and critically evaluating research papers to provide a comprehensive overview of a specific topic or field of study.
  • Discussions throughout the semester to examine the understanding of all students.
  • Final exam will test your learnings from the lectures and reading assignments throughout the course.

 

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 Discussions for each Module and Final exam.
    • Final exam will test all the content learned throughout the course.

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

Final Exam

  • Checking comprehension and improving higher-level thinking
  • How to Prepare for a Multiple Choice Test?
    • Watch, make notes, and revise, video lectures BEFORE attempting the test.
    • Review lecture notes after the lecture as many times as needed.
    • 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 Final Exam?
    • 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

 

Discussions and Class Participation                                                      

·      Content quality               30%

·      Peer feedback quality    30%

60%
Exams  40%
Bonus Opportunity (Research Project) 30%

Letter Grade Distribution Table

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

Letter

Range%

Letter

Range%

Letter

Range%

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

 

Textbooks

  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

 

Expectations

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 test 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 hours;
  • Grade test within 24 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 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

Writing effective discussion posts for this class involves expressing your ideas clearly, engaging with the topic, and fostering meaningful conversations. Here are some guidelines in addition to those provided in the syllabus to help you craft impactful discussion posts:

  1. Be Clear and Concise: Present your thoughts in a clear and organized manner. Use well-structured paragraphs and avoid unnecessary jargon or overly complex language.
  2. Provide Relevant Information: Support your points with evidence, examples, or references from the course material or external sources. This adds depth to your response and demonstrates your understanding of the subject matter.
  3. Engage Thoughtfully: Go beyond surface-level responses. Analyze the topic critically, explore different angles, and consider potential implications. Engaging deeply with the topic fosters more meaningful discussions.
  4. Ask Questions: Encourage interaction by posing questions that prompt your peers to reflect on their perspectives. This can lead to richer discussions and exchange of ideas.
  5. Respectful Tone: Maintain a respectful tone when expressing your opinions, even if you disagree with others. Constructive criticism is valuable, but always be courteous.
  6. Stay On Topic: While sharing personal experiences can be relevant, make sure your anecdotes tie back to the main topic and contribute to the discussion.
  7. Build on Others’ Responses: Read your classmates’ posts and build on their ideas. This shows active engagement and can lead to more collaborative discussions.
  8. Proofread: Review your post for grammar, spelling, and formatting errors. A polished post enhances your credibility and readability.
  9. Timeliness: Aim to post early in the discussion timeframe to allow others ample time to respond. Late posts might not receive the same level of engagement.
  10. Word Limit: consider 250 words total (combining all the topics of a module) as an anchor to write you posts as I do not want students to write big pages long essays as well as single line responses are not valid for grading. If you post goes a bit above this word limit to provide substantial meaning that’s fine.
  11. Open-Ended Closing: Conclude your post by leaving the door open for further discussion. This encourages others to respond and continue the conversation.
  12. Be Mindful of Netiquette: Respect online etiquette by avoiding excessive capitalization (which can come across as shouting) and using appropriate emoticons or emojis sparingly.
  13. Revise and Edit: Before finalizing your post, review it for coherence, relevance, and accuracy.

Remember, discussion posts are a way to engage with your peers, share perspectives, and enhance your understanding of the subject. By following these guidelines, you can contribute meaningfully to class discussions and foster a productive learning environment.

 

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. 

 

 

Academic Misconduct

Academic misconduct is incompatible with a degree from FIU. KFSCIS expects all of its students to practice complete honesty and transparency in all of their academic endeavors.

From the FIU Student Conduct and Honor Code: 

“Undergraduate, Graduate, and Professional Students at FIU are expected to adhere to the highest standards of integrity in every aspect of their lives. Honesty in academic matters is part of this obligation. Academic integrity is the adherence to those special values regarding life and work in an academic community. Code violations may lead to suspension or expulsion from the University if a determination of responsibility has been made. These sanctions will be determined based on severity of incident and prior violations of the Code.”

All FIU policies regarding academic integrity apply to this course. Acts of academic misconduct may involve (but are not limited to) the following:

  • Plagiarism in written or coding submissions
  • Cheating during tests or exams
  • Enabling acts of academic dishonesty by sharing work with other students
  • Falsification of information
  • Having unauthorized possession of tests or exams
  • Submitting the work of another person
  • Submitting work previously used in another course or in a prior semester, without the express permission of the instructor (self-plagiarism)
  • Uploading course materials to any commercial websites without the instructor’s express permission
  • Utilizing outside 3rd-party paid sources, paying another student, or offering to pay another student to produce the work you submit
  • Submitting work from a repository, including third party commercial sites offering work for-hire
  • Providing your FIU log-on credentials to anyone else to use for any purpose

If, at any time, you are uncertain about permitted or prohibited actions in this course, consult the instructor for guidance. 

Zero tolerance for academic misconduct: If you commit any form of academic misconduct in this course, you WILL be reported to the FIU Student Conduct and Academic Affairs office.

Failure to adhere to the guidelines stated above may result in one of the following:

  • Expulsion: Permanent separation of the student from the University, preventing readmission to the institution. This sanction shall be recorded on the student`s transcript.
  • Suspension: Temporary separation of the student from the University for a specific period of time.

Here are some Do’s and Don’ts for use of ChatGPT in our class:

Do:

  1. use ChatGPT to enhance your understanding of a topic or to help generate ideas for research.
  2. use ChatGPT to ask thoughtful and relevant questions.
  3. keep track of the sources you obtain information from and cite them properly (yes, this means cite ChatGPT!)

Don’t:

  1. use ChatGPT to plagiarize or cheat in any way.
  2. rely solely on ChatGPT for your research or analysis.
  3. use ChatGPT to generate responses without critically evaluating them for accuracy and relevance.

Why is it important to critically evaluate ChatGPT? Because ChatGPT is designed to generate conversation, not accurate information. That is why the accuracy and reliability of information generated by ChatGPT may not always be guaranteed. Therefore, it is important to critically evaluate the information and verify it with additional sources whenever you can.

Please be aware that the use of ChatGPT may raise privacy concerns, as the tool operates by processing and storing user data, which could potentially be accessed and used by the developers or third parties who have access to the system’s data. It is important to review and understand ChatGPT’s privacy policy, and to exercise caution when sharing personal or sensitive information with the system.

By taking this course, you promise to adhere to FIU’s Student Code of Academic Integrity.

For details on the policy and procedures please visit the following Academic Misconduct links:

https://online.fiu.edu/student/resources/policies.php

Short version of the FIU honor code:

https://academic.fiu.edu/AcademicBudget/misconductweb/Code_of_Academic_Integrity.pdf

Complete version as included in the full regulations document – See section 6 (starting on page 14) for academic misconduct:  https://regulations.fiu.edu/docs=257

I would prefer even to fail with honor than win by cheating. — Sophocles

 

Caveat

* Everything here is subject to change.