sys/vfs/hammer: Fix and add comments on btree boundaries
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Wed, 4 Mar 2015 19:10:33 +0000 (04:10 +0900)
committerTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Wed, 4 Mar 2015 20:18:55 +0000 (05:18 +0900)
- Some comments on btree left/right boundaries are not up-to-date
  with the code or seem to need another line to make things clear.

sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_btree.h

index 5d31fe2..c748f38 100644 (file)
@@ -41,7 +41,7 @@
  * of the tree), but adds two additional boundary elements which describe
  * the left-most and right-most element a node is able to represent.  In
  * otherwords, we have boundary elements at the two ends of a B-Tree node
- * instead of sub-tree pointers.
+ * with no valid sub-tree pointer for the right-most element.
  *
  * A B-Tree internal node looks like this:
  *
@@ -54,6 +54,8 @@
  *
  * The radix for an internal node is 1 less then a leaf but we get a
  * number of significant benefits for our troubles.
+ * The left-hand boundary (B in the left) is integrated into the first
+ * element so it doesn't require 2 elements to accomodate boundaries.
  *
  * The big benefit to using a B-Tree containing boundary information
  * is that it is possible to cache pointers into the middle of the tree
@@ -1747,8 +1749,6 @@ done:
 
 /*
  * Same as the above, but splits a full leaf node.
- *
- * This function
  */
 static
 int
index 99eb17c..b90e2ba 100644 (file)
@@ -57,6 +57,8 @@
  *
  * The recursion radix of an internal node is reduced by 1 relative to
  * a normal B-Tree in order to accomodate the right-hand boundary.
+ * The left-hand boundary (B in the left) is integrated into the first
+ * element so it doesn't require 2 elements to accomodate boundaries.
  *
  * The big benefit to using a B-Tree with built-in bounds information is
  * that it makes it possible to cache pointers into the middle of the tree
@@ -112,8 +114,8 @@ struct hammer_base_elm {
 typedef struct hammer_base_elm *hammer_base_elm_t;
 
 /*
- * Localization has sorting priority over the obj_id and is used to
- * localize inodes for very fast directory scans.
+ * Localization has sorting priority over the obj_id,rec_type,key and
+ * is used to localize inodes for very fast directory scans.
  *
  * Localization can also be used to create pseudo-filesystems within
  * a HAMMER filesystem.  Pseudo-filesystems would be suitable
@@ -137,8 +139,7 @@ typedef struct hammer_base_elm *hammer_base_elm_t;
 /*
  * Internal element (40 + 24 = 64 bytes).
  *
- * An internal element contains the left-hand boundary, right-hand boundary,
- * and a recursion to another B-Tree node.
+ * An internal element contains a recursion to another B-Tree node.
  */
 struct hammer_btree_internal_elm {
        struct hammer_base_elm base;