Distribution of 70 points:
· (5) Implementation of BtreeFile destructor.
·
(2) Debug of PrintTree. -1 if fails to find out one bug.·
(13) Implementation of the BTIndex classes. -3 if it is not fully implemented or has some bugs.·
(17) Complete implementation of Insert. -3 if has small bugs. -5 if not implemented completely.·
(8) Implementation of Search. -2 if has one small bug.·
(15) Implementation of Delete. -2 if has one small bug. -5 if not implementing completely or crash when deleting a large number of records.· (7) Implementation of scan. -1 if has one small bug. -2 if one function does not work.
·
(3) Implementation of Dump Statistics: -1 if has one small bug.
Lose 5 per cent of total score.
Lose 5 per cent of total score.
Average: 94.8.
Range: 88 - 100
The B+ tree project is relatively difficult than previous one. However, most of you finished it quite well. Majority has fully implemented insert, delete, search, scan and dumping statistics. Some still have bugs in your implementation, so that their programs crash when the tree becomes large. Following are some common errors:
·
Pointer error, such as using a pointer before allocating space in memory. Some person's program crashes because pointer error.·
Has not handled root correctly in inserting and deleting. Different from textbook, we require that the root will become a leaf node when there is only one page is B+ tree. Also when we split the root, we must have the header point to a new root.· Fail to find out the logical bug in PrintTree. We suppose to first print the parent, then print the child.
· Fail to implement deleting current record in scan. Some forgot to write back the page if it was changed. In deletecurrent function, you should mark that this page is dirty. So in GetNext function, you can write back the page if you step to a new page.
· Fail to implement recursive insert correctly. Some fails to move half of entries to a new page when splitting. Some fails to return the pop up entry to the parent correctly.
· Fail to implement delete correctly. Some fails when deleting a bunch of records. This dues to incorrect handling of merge and return the entry to parent incorrectly.
· Error in dumping statistics. For fill factor, we mean the ratio of used space to total space. Someone takes it as the ratio of number of data records to number of leaves.