public static KeyValue createFirstOnRow(byte[] buffer, final byte[] row, final byte[] family,
    final byte[] qualifier) throws IllegalArgumentException {
    return createFirstOnRow(buffer, 0, row, 0, row.length, family, 0, family.length, qualifier, 0,
      qualifier.length);
  }
Create a KeyValue for the specified row, family and qualifier that would be smaller than all
other possible KeyValues that have the same row, family, qualifier. Used for seeking.
@param buffer    the buffer to use for the new <code>KeyValue</code> object
@param row       the value key
@param family    family name
@param qualifier column qualifier
@return First possible key on passed Row, Family, Qualifier.
@throws IllegalArgumentException The resulting <code>KeyValue</code> object would be larger
                                 than the provided buffer or than
                                 <code>Integer.MAX_VALUE</code>
hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValueUtil.java