18-746 Storage Systems (Fall 2023): FAQ



FAQs will be posted here. Keep checking this page.

Tips for productive office hours



General

Gen.Q1: The project does not compile and I cannot run any tests.

Please follow the direction in the “Using Amazon Web Services” section to spin up an AWS instance with the development environment.
The project setup should work within the AWS instance that we provided for the project, and you should have no expectation that it will work anywhere else. If you are trying to run it anywhere else, it probably won’t work and, even if it does, you must ensure your code works in the AWS instance as the instructors will use it to grade your work.

Gen.Q2: What is the autolab website for 746?

The autolab website is autolab.pdl.cmu.edu.

Gen.Q3: Do we get any grace days? How many?

Grace days are your automatic flexibility for the inconvenient time issues that arise during a semester, such as concurrent deadlines in other classes, minor illnesses, etc. You have a total of three grace days (i.e., unpenalized late days) for the entire semester. Each checkpoint has a due date and an end date. Grace days can be used to avoid late penalties for submissions past the due date. No submissions are accepted after the end date.

Gen.Q4: How many submissions do we have per checkpoint? Autolab shows infinite submissions remaining.

Autolab submissions are for submitting code that you have tested well locally and believe works correctly. It is NOT a test service and should not be used as such. You are allowed 25 submissions per checkpoint, which should be many more than required, if you are doing appropriate testing locally. Any additional submission after the first 25 submissions will incur a penalty of 10% of that checkpoint grade. Autolab shows infinite submissions because we do not impose a hard limit, but rather have a penalty per submission. You can easily check the number of submissions you have already made by scrolling down the checkpoint-submission page, as well as looking at your handin history via 'View Handin History' on the left panel.

Gen.Q5: Will we be graded on code quality for the checkpoints? Do we have a code style guideline?

You should always keep your code in good style, which is generally the requirement of CMU courses (and all jobs in the real world). The style for checkpoints will be inspected and graded after the entire project is completed. In general, you should follow 15213 guidelines for code style.

Exceptions to the 15213 guidelines:

Gen.Q6: What is the password for the user account in the AWS instance? I want to install a package.

We do not provide sudo permission for students in the project VM. There are ways to install packages without root privileges if needed. If you insist on using third party tools or library in your code, you adopt any risk of your code not working when it is submitted to Autolab. Please make sure it will pass the tests on Autolab, so that you are not surprised by your score.

Gen.Q7: How can we find out more about a particular aspect of the lab?

Have you carefully read the handout? :)

Gen.Q8: I can’t access to the course materials on the web page (“Access forbidden”).

Course materials are only accessible within the CMU network. You need to use CMU’s VPN services when accessing from off-campus.

Gen.Q9: I'm getting a "Connection Timeout" issue on AWS.

Go to your AWS web portal and click on your EC2 instance. Under security, inspect the inbound rules. Ensure that there is a source that includes your computer's IP address and if there is not add a rule with 0.0.0.0/0 as source.


Using Amazon Web Services (AWS)

Read the following guide before starting on any project development, and make sure your AWS account is working.
You must ensure your code works in the AWS instance as the instructors will use it to grade your work.

aws.Q1: Setup and Billing

  1. Create a new AWS account here for this class.
    1. Make sure you use a form of your Andrew email address when you create your AWS account, specifically AndrewID+18746@andrew.cmu.edu or AndrewID+15746@andrew.cmu.edu. For example, if your Andrew ID is xyz@andrew.cmu.edu, then your AWS account should be xyz+18746@andrew.cmu.edu or xyz+15746@andrew.cmu.edu.
    2. At step 2, select "personal" to the question "How do you plan to use AWS?"
    3. At step 5, you must select the Basic (Free) support plan.
  2. Your new account may come with 750 hours/month (for 12 months) of free instance time. You need to use the "Free-Tier" instances in order to take advantage of that promotion.
  3. After you create your new AWS account, you must submit this Google form, so that we can ask AWS to add additional budget to your account you can use throughout the projects. To obtain your AWS Account ID, (1) sign into your AWS Account, (2) click your name located on the top right navigation pane, and (3) select "Account". Your AWS Account ID is the twelve digit number located underneath the Account Settings section. Note that you can submit this form only once, so if you need to update (or change) the form you submitted, write a private post on Piazza so that we can help you.
  4. To monitor your billing and usage, sign in to your AWS account, click on the drop-down menu with your account name and click on "My Billing Dashboard".
Warning: Make sure to protect your AWS credentials! Do not share or expose them to others online. If your AWS account is compromised and unauthorized charges are made to your credit card, we will be unable to help.

aws.Q2: Starting your AWS instance

  1. Sign into your AWS account.
  2. Click on EC2 under "Compute" to be taken to the EC2 Dashboard.
  3. On the right corner of the top bar, click the second drop-down menu from the right to select the datacenter you will be using. Select ""US East (Ohio) us-east-2.
  4. In the sidebar on the left, click on "AMIs" under the "Images" group.
  5. Click on the drop-down menu under "Amazon Machine Images (AMIs)" and select "Public images".
  6. Use the bar to the right of the drop-down menu to search for 'ami-034f3119b29d982a1'. Double-check that the image owner is '169965024155' and the AMI name is '746-update10-devCopy'. This is the VM image for the course. Use the refresh button at the top right if the image doesn't show up right away.
  7. Select the AMI, and click "Launch instance from AMI".
  8. Make sure the "t2.micro" instance type is selected (which is also Free-tier eligible, if you are using a new account that benefits from that promotion).
  9. Click "Review and Launch".
  10. On the next screen click "Launch".
  11. Select "Proceed without a key pair", and click "Proceed without key pair". To access the instance, you will need this key. (If you get "access forbidden" message, make sure that you are on campus and using CMU-secure wifi, or you are connected to CMU VPN.)
  12. Click "Launch Instance", and on the next screen click "View all instances"
  13. In the EC2 Dashboard Instances screen wait for your VM instance state to transition to "running", and the VM status checks to indicate "2/2 checks passed".
  14. Select your instance and check the 'Public IPv4 DNS' column. Make a note of the machine's FQDN, which will be of the form ec2-X.us-east-2.compute.amazonaws.com
  15. From your terminal, run:

    ssh -Y -i "path/to/746-student.pem" student@ec2-X.us-east-2.compute.amazonaws.com

    • Make sure the path passed to the -i option points to the 746-student.pem key pair you downloaded from the course website
  16. Run the ssh command to connect to your instance!

aws.Q3: Securing your AWS instance

It is a good idea to change the key you use to login to your AWS instance, and stop using the 746-student.pem which the AWS template comes configured with. To do so, we provide a simple script: make_secret_key.sh which will generate a new key and use it to replace 746-student.pem on your instance. Note that if you terminate your instance and create it again from the template image, you will have to run this script again.

aws.Q4: Terminating your AWS instance

When you are done using your VM, you can stop it or terminate it. You can stop your VM by running the shutdown command from within Ubuntu, or using Actions → Instance State → Stop.

Be warned that when your VM is stopped it still consumes resources, which will lead to usage charges for EBS storage (and you may run out of your credit faster). Instead of stopping your VM, make sure to copy out your source code when you're done, and then terminate your instance. You can do that via Actions → Instance State → Terminate.


aws.Q5: Using free tier

AWS free-tier accounts give access for free to a limited amount of AWS resources for the first 12 months of the account (complete information about these resources can be found here). To take advantage of these benefits, you will need to create a new AWS account, following the instructions in aws.Q1. For this class, you will need t2.micro and EBS volumes, which both are covered by the free-tier allowance.

Warning: Using more than the allowed resources by AWS free tier or resources not listed on the AWS website will result in you being billed, so be careful.

Answers to common questions:
  1. I already have an AWS account using my andrew-id. Should I create a new one? Yes, follow the instructions in aws.Q1.
  2. Will I receive vouchers for AWS? No, we expect the free-tier access to be enough to complete the course.
  3. I have another class using AWS. Can I use the same account for both? We cannot guarantee that, between both classes, you will not go over free tier limits. For that reason, we highly recommend creating a new, separate account for this class.

Lab 1: myFTL

myFTL.Q1: Do we need to make the in-memory data durable?

You can assume the contents of DRAM is non-volatile by some mechanisms that we aren’t asking you to implement.

myFTL.Q2: Which GC policy do we need to implement?

You need to implement all four policies described in the handout (section 5.2). The configuration object passed to the constructor function can be used to get current GC policy (Appendix A.3.1).

myFTL.Q3: What is the age of a block for LRU / LFS cost-benefit policy?

The age of a block is how long it has been since you last modified that block. In other words, age of a block = current timestamp - timestamp of the most recently written page of block.


Zoom

This is an in-person class.  But, if circumstances dictate, some lectures for this class may be delivered through Zoom. As per our course policy, recording lectures or downloading lecture recordings is prohibited. See below for more information.

Please follow the steps below to set up your Zoom account and your Zoom client. Do this well ahead of the lecture time and office hours, and if you face difficulties, post on Piazza or email us at the course mailing list for help.

Setting up your Zoom account

Setting up your Zoom Desktop Client



Regrade Requests

We worked hard to grade the exam consistently and correctly for all students. If concerned about the points you received for any given question, please carefully re-read the question and the sample solution. The class policy does allow (and describe the process) for regrade requests, but such requests should be submitted if you believe that an error was made in grading your exam. BEFORE submitting such a request, consider these questions and make sure you’re your request addresses them. Historically, we find that few regrade requests result in changes, because the original grading was consistent with expectations and the rubrics applied to the entire class.
  1. Do the words I wrote, as I wrote them, provide the answer for which I am arguing? We can only assign points for what was written in the answer, not what may have been intended. In some prior years, regrade requests from students offered detailed explanations of what they meant to say, even if that is not clearly indicated in the text they actually wrote. When important clarity or assumptions are left out of a written answer, the grader can not fill in the gaps with their own knowledge... they must grade the answer given as written.
  2. Does your written answer specifically address the question asked? We do not award points for simply mentioning facts about the question’s topic, even if some of those facts may also be part of a correct answer (e.g., as reflected in the sample solution). Full points are awarded for an answer that is clear, complete, and accurately responsive to the question asked. If the answer does not go beyond listing the generic information, by applying the information to the specific question asked, it will not receive full points.
  3. Does your written answer include some correct and some incorrect information? Answers that include some correct information and some incorrect information will not receive full credit; for example, 2 correct and 1 incorrect might average out to 2/3 correct. A regrade request should not highlight one aspect of an answer and ignore flaws with the answer as a whole.
  4. Does your written answer provide clear explanation? An answer that mentions the right aspect(s), but then does not provide clear explanations of how they apply to the specific question asked will not receive full credit.
  5. Was your correct answer marked incorrect or do you just disagree with the amount of partial credit? We try hard to make partial credit assignment consistent across the (large) class. In some cases, you may feel like you should receive more points for a particular incorrect answer, but we are not going to change the point assignments for a single person to be different than was the case for all.
For your regrade request to be considered, it must start with the line "I have considered all five questions from the FAQ, and I believe an error was made in grading my exam."


Last updated: 2023-08-31 20:38:26 -0400