Florida International University
CIS 5346 – Storage Systems
- Janki Bhimani
- Office: CASE 238B
- Telephone: (305) 348 9934
- E-mail: firstname.lastname@example.org
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.
– 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.
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.
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:
- Technical Requirements and Skills
- Accessibility and Accommodation
- Panthers Care & Counseling and Psychological Services (CAPS)
- Academic Misconduct Statement
- Copyright Statement
- Inclusivity Statement
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)
- 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 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 15%
· Peer feedback quality 15%
|Project: Literature Review Paper||30%|
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|
- 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:
- Linux Kernel Development, Third Edition, Robert Love, Addison Wesley
- Operating System Concepts, Seventh Edition, Avi Silberschatz, Peter Baer Galvin, Greg Gagne, John Wiley & Sons, Inc.
- Computer Architecture: A Quantitative Approach, Hennessy and Patterson Morgan Kaufmann; 3rd edition
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.
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.
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:
- Reference the Zoom Student Tutorials to learn about the tool, how to access your meeting room, and share your screen.
- Access the Zoom Test Meeting Room to test out the software before joining an actual 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 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:
- use ChatGPT to enhance your understanding of a topic or to help generate ideas for research.
- use ChatGPT to ask thoughtful and relevant questions.
- keep track of the sources you obtain information from and cite them properly (yes, this means cite ChatGPT!)
- use ChatGPT to plagiarize or cheat in any way.
- rely solely on ChatGPT for your research or analysis.
- 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.
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:
Short version of the FIU honor code:
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
* Everything here is subject to change.