public static ChangedLsn of(byte[] bytes) {
    return of(
        ((long) bytes[15] << 56)
            | ((long) bytes[14] & 0xff) << 48
            | ((long) bytes[13] & 0xff) << 40
            | ((long) bytes[12] & 0xff) << 32
            | ((long) bytes[11] & 0xff) << 24
            | ((long) bytes[10] & 0xff) << 16
            | ((long) bytes[9] & 0xff) << 8
            | ((long) bytes[8] & 0xff),
        ((long) bytes[7] << 56)
            | ((long) bytes[6] & 0xff) << 48
            | ((long) bytes[5] & 0xff) << 40
            | ((long) bytes[4] & 0xff) << 32
            | ((long) bytes[3] & 0xff) << 24
            | ((long) bytes[2] & 0xff) << 16
            | ((long) bytes[1] & 0xff) << 8
            | ((long) bytes[0] & 0xff));
  }
Global row sequence number.

<p>Consist of two parts:

<ul>
  <li>id of transaction row written into the table
  <li>row sequence within the transaction
</ul>
amoro-format-iceberg/src/main/java/org/apache/amoro/data/ChangedLsn.java