@Override
  public String getRecordByKey(String key) throws MetadataException {
    int pos = getIndexByKey(key);

    if (memberNum <= 0 || pos > memberNum) {
      return null;
    }

    // to tell whether pos is position to insert
    if (pos == 0 || pos == memberNum) {
      pos = pos == memberNum ? pos - 1 : pos;
    }

    return key.equals(getKeyByIndex(pos)) ? getNameByIndex(pos) : null;
  }
<b>Page Header Structure: (19 bytes used, 13 bytes reserved)</b> As in {@linkplain
ISchemaPage}.

<p>Page Body Structure:

<ul>
  <li>2 bytes * memberNum: offset of (alias, name) pair, to locate string content
  <li>... spare space...
  <li>var length(4 byte, var length, 4 bytes, var length): (alias, name) pairs, ordered by
      alias
</ul>
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/AliasIndexPage.java