private static int getRecordLength(IMeasurementMNode<ICachedMNode> node) {
    if (node.isLogicalView()) {
      return VIEW_BASIC_LENGTH
          + ViewExpression.getSerializeSize(((LogicalViewSchema) node.getSchema()).getExpression());
    } else {
      // consider props and alias
      int bufferLength =
          node.getAlias() == null
              ? 4 + MEASUREMENT_BASIC_LENGTH
              : (node.getAlias().getBytes().length + 4 + MEASUREMENT_BASIC_LENGTH);
      if (node.getSchema().getProps() != null) {
        for (Map.Entry<String, String> e : node.getSchema().getProps().entrySet()) {
          bufferLength += 8 + e.getKey().getBytes().length + e.getValue().length();
        }
      }
      return bufferLength;
    }
  }
These offset rather than magic number may also be used to track usage of related field.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/RecordUtils.java