CSE444 Final Project Instructions

 

The final lab in CSE 444 is also your final project with the following additional instructions.

 

1. Design and Implementation

You need to complete the mandatory part of the lab.

You then need to pick and implement one or more extensions to the lab. You can either pick from our list of suggested extensions or you can devise an extension of your choice. To get full credit, your extension must be interesting and non-trivial. Trivial extensions will only get a small fraction of the total score.

 

2. Testing and Evaluation

You need to devise unit tests and system tests for the project extension(s) that you will choose to implement.

You should use JUnit when appropriate.

You are welcome to go beyond JUnit and use scripts if that simplifies your task of testing certain configurations for your overall system (e.g., multi-process tests).

 

3. Final Report

Your final report should be single-column, single-spaced. Remember to write your name. You can submit either a .pdf file or a .docx file.

Your final report must follow the structure below, including the required length for each section.

MILESTONE: For the milestone, you need to submit a partial report including Section 1 and parts of Section 2. Describe what you already implemented.

 

Section 1. Overall System Architecture (2 pages)

An overview description of the overall architecture of your final SimpleDB system (0.5 page)

A diagram of the overall system architecture (0.5 page)

A somewhat more detailed description of each of the following main components of your SimpleDB system: Buffer manager, operators, lock manager, and log manager (1 page)

The diagram and description should include both the components that you wrote and those that were provided to you.

 

Section 2. Detailed design of the query optimizer (3 pages)

Use diagrams and text as needed to describe the design of your query optimizer. Make sure to answer any questions raised in the lab instructions in this section.

 

Section 3. Discussion (0.5-1 page)

Discuss the overall performance of your SimpleDB engine.

Discuss what you would implement or what you would change in the implementation if you had more time.

 

4. Grading

You will get two grades: one grade for your system and one grade for your final report.

4.1 System grade

50% of your grade will be based on whether or not your code passes the test suite we will run over it. This test suite will only exercise the mandatory component of the lab.

10% of your grade will be based on our subjective evaluation of your code for the mandatory part of the lab.

30% of your grade will be based on our subjective evaluation of your code for the project extension(s) that you will choose to implement. We will pay attention to how much extra code you wrote for the extension. To get full credit, an extension must be non-trivial.

10% of your grade will be based on the unit tests and system tests that you will provide for the extensions that you will implement. To get full credit, the extension must pass all the tests AND the tests must exercise the extension well. To get full credit, the tests must be non-trivial.

4.2 Final report grade

The grade for the final report will be based on the completeness, level of detail, and overall quality of your write-up.