CSE444 Final Project Instructions

 

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

 

1. Design and Implementation

You need to complete the mandatory part of the lab, which is all parts through 2.4.

You then need to pick and implement one extension to the lab in section 2.5. You can either pick from our list of suggested extensions or you can devise an extension of your choice. Both options will receive full credit.

 

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 parts of Section 1 and Section 2. Submit a draft that includes 1 page of Section 1 and at least some of Section 2, describing what you've implemented so far. You should implement through exercise 2 for the milestone, but we will not run your tests, just confirm that you have started implementing.

 

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 (2 pages)

Use diagrams and text as needed to describe the design of your query optimizer.

 

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 that you will choose to implement. To get full credit you should be thorough in finding a good solution for that extension and in writing test cases.

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.