Commit 5d45d73b authored by Billy Bloomquist's avatar Billy Bloomquist
Browse files

Add assignment 1 documents

Added the designdoc and logistic info documents in a new directory.
parent 3d5b43db
No related merge requests found
Showing with 117 additions and 0 deletions
+117 -0
CS122 Assignment 1 - NanoDB Set-Up and Storage Layer - Design Document
======================================================================
Fill in answers for all questions based on your team's work on Assignment 1.
A: Deleting and Updating Tuples
--------------------------------
A1. Briefly describe (1-3 sentences) how you reclaim slot entries in the
slotted page. Which slot entries are you able to reclaim? Which
entries are unable to be reclaimed?
A2. Briefly outline the steps of what your setNullColumnValue() function
does. You don't have to go into much detail; we can look at your
code for the details. Just describe the basic things the function
must do to set a column-value to NULL.
A3. Similarly, briefly outline the steps of what your
setNonNullColumnValue() function does.
B: Unpinning Tuples and Pages
------------------------------
B1. Briefly describe your strategy for determining when tuples need to be
unpinned. Make sure to comment on both plan-nodes and commands.
B2. In general, you only need to worry about unpinning tuples because the
backing page will also be unpinned. However, there are some situations
when DBPages themselves must be unpinned directly. Describe any such
situations where you unpin pages directly in your implementation, and
why you do so. (Make sure to answer this question in the context of
your insert-optimization changes, not the initial state of the code.)
C: NanoDB Storage Performance
------------------------------
C1. In 3-6 sentences, describe your general approach for improving the
performance of inserts, including what general file-level structuring
you use of blocks.
C2. Does your file-level organization have the potential to increase the
number of large disk seeks when performing inserts? What steps do
you take, if any, to reduce the number of disk seeks?
C3. The storage layer records a number of statistics, e.g. pagesRead,
pagesWritten, fileChanges, and fileDistanceTraveled. What changes in
these statistics did your team observe after changing the heap-file
implementation? Explain why you believe these to be improvements.
C4. Describe your criteria for when a page is considered to be "full."
C5. What steps must be taken during a tuple-delete operation to update
your file-level structures? How many pages must be written to?
C6. What steps must be taken after a tuple-insert operation that fills
the data page?
C7. An update operation has the potential to grow or shrink a page. How
does your code ensure that updates are handled properly?
E: Feedback [OPTIONAL]
-----------------------
WE NEED YOUR FEEDBACK! Thoughtful and constructive input will help us to
improve future versions of the course. These questions are OPTIONAL, and
your answers will not affect your grade in any way (including if you hate
everything about the assignment and databases in general, or Donnie and/or
the TAs in particular). Feel free to answer as many or as few of them as
you wish.
E1. What parts of the assignment were most time-consuming? Why?
E2. Did you find any parts of the assignment particularly instructive?
Correspondingly, did any parts feel like unnecessary busy-work?
E3. Did you particularly enjoy any parts of the assignment? Were there
any parts that you particularly disliked?
E4. Were there any critical details that you wish had been provided with the
assignment, that we should consider including in subsequent versions of
the assignment?
E5. Do you have any other suggestions for how future versions of the
assignment can be improved?
CS122 Assignment 1 - NanoDB Set-Up and Storage Layer - Logistics
================================================================
Please completely fill out this document so that we know who participated on
the assignment, any late extensions received, and how much time the assignment
took for your team. Thank you!
L1. List your team name and the people who worked on this assignment.
<team name>
<name>
<name>
...
L2. Specify the commit-hash of the Git commit you are submitting for your
assignment. (You can list the hashes of your commits with the command
"git log".)
Commit hash: <hash>
L3. Specify how many late tokens you are applying to this assignment, if any.
Similarly, if your team received an extension from Donnie then please
indicate how many days extension you received. You may leave this blank
if it is not relevant to this submission.
<tokens / extension>
L4. For each teammate, briefly describe what parts of the assignment each
teammate focused on, along with the total hours spent on the assignment.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment