Clarifications/corrections to project 3: 11/25/2004 ---------- Function 11: Function 11 should toggle a debug flag (set to false, by default) that prints out a message whenever a bucket is split or merged. In the case of a split, you should print out something to the effect of "Insert of key A causes bucket B to split. Creating bucket C. Inserting key D into node E for bucket C." In other words, you should describe what happens when a split occurs (on any bucket), mentioning all the affected buckets and relevant keys. If you implement merge, the message should have similar information. 11/27/2004 ---------- When a file is created, it should be 128B long. One for the header block, and one for the empty leaf bucket. 11/28/2004 ---------- Implementing non-unique key handling: When you allow non-unique keys, your leaf pointers must point to buckets containing the values that correspond to each key. That is, if you insert the following pairs: 1,1 1,2 1,3 1,4 Then, you have inserted four values for the single key 1. Your B+-tree should contain a single leaf node with the single key 1. The pointer corresponding to this key should point to a bucket containing the values 1, 2, 3, and 4. Now, assume you insert 2,5 into the index. Then your B+-tree should grow by one bucket, which contains the values corresponding to the key 2. The leaf should contain a pointer to this bucket. Now, your B+-tree file contains leaves and value buckets. This is a very interesting type of tree, and you have to modify many index functions to work with it. Splitting the value buckets: Consider that you put values into a bucket. The bucket has a limited capacity. Assume that the capacity if 5 values. After five values, you must make an overflow bucket to store the rest of the values. Searching the buckets: When you do a lookup for a key, you must return all the key's associated values. Implementing the file manager: I will no longer offer the file manager as an extra credit option. If you do the non-unique key handling, then you will get credit for the file manager extra credit option.