def node_chain(key)
      node = myself
      list = [ node ]

      while node do
        # Find index of the entry that best fits the key.
        i = node.search_key_index(key)
        if node.is_leaf?
          # This is a leaf node. Check if there is an exact match for the
          # given key and return the corresponding value or nil.
          return node.keys[i] == key ? list : []
        end

        # Add current node to chain.
        list << node
        # Descend into the right child node to continue the search.
        node = node.children[i]
      end

      PEROBS.log.fatal "Could not find node chain for key #{key}"
    end
def node_chain(key)
      node = myself
      list = [ node ]

      while node do
        # Find index of the entry that best fits the key.
        i = node.search_key_index(key)
        if node.is_leaf?
          # This is a leaf node. Check if there is an exact match for the
          # given key and return the corresponding value or nil.
          return node.keys[i] == key ? list : []
        end

        # Add current node to chain.
        list << node
        # Descend into the right child node to continue the search.
        node = node.children[i]
      end

      PEROBS.log.fatal "Could not find node chain for key #{key}"
    end
Return the node chain from the root to the leaf node storing the
 key/value pair.
 @param key [Integer] key to search for
 @return [Array of BigTreeNode] node list (may be empty)