code: func (p *DB) findGE(key []byte, prev bool) (int, bool) {
  	node := 0
  	h := p.maxHeight - 1
  	for {
  		next := p.nodeData[node+nNext+h]
  		cmp := 1
  		if next != 0 {
  			o := p.nodeData[next]
  			cmp = p.cmp.Compare(p.kvData[o:o+p.nodeData[next+nKey]], key)
  		}
  		if cmp < 0 {
  			// Keep searching in this list
  			node = next
  		} else {
  			if prev {
  				p.prevNode[h] = node
  			} else if cmp == 0 {
  				return next, true
  			}
  			if h == 0 {
  				return next, cmp == 0
  			}
  			h--
  		}
  	}
  }
docs: // Must hold RW-lock if prev == true, as it use shared prevNode slice.