+ * A Transaction should be closed when the user is done with it, otherwise the + * pages associated with the given revision, and all the referenced pages, will + * remain on the storage. + *

+ * Assuming that the array is zero-indexed, the returned value will be :
+ * position = - ( position + 1) + *
+ * So for the following table of keys :
+ *

```+     * +---+---+---+---+
+     * | b | d | f | h |
+     * +---+---+---+---+
+     *   0   1   2   3
+     * ```
+ * looking for 'b' will return -1 (-(0+1)) and looking for 'f' will return -3 (-(2+1)).
+ * Computing the real position is just a matter to get -(position++). + *

+ * If we don't find the key in the table, we will return the position of the key + * immediately above the key we are looking for.
+ * For instance, looking for : + *

+ *
• 'a' will return 0
• + *
• 'b' will return -1
• + *
• 'c' will return 1
• + *
• 'd' will return -2
• + *
• 'e' will return 2
• + *
• 'f' will return -3
• + *
• 'g' will return 3
• + *
• 'h' will return -4
• + *
• 'i' will return 4
• + *