public static DeleteDataNode deserializeFromDAL(ByteBuffer byteBuffer) {
    short nodeType = byteBuffer.getShort();
    int size = ReadWriteIOUtils.readInt(byteBuffer);
    List<MeasurementPath> pathList = new ArrayList<>(size);
    for (int i = 0; i < size; i++) {
      pathList.add((MeasurementPath) PathDeserializeUtil.deserialize(byteBuffer));
    }
    long deleteStartTime = ReadWriteIOUtils.readLong(byteBuffer);
    long deleteEndTime = ReadWriteIOUtils.readLong(byteBuffer);
    ProgressIndex deserializedIndex = ProgressIndexType.deserializeFrom(byteBuffer);

    PlanNodeId planNodeId = PlanNodeId.deserialize(byteBuffer);

    // DeleteDataNode has no child
    int ignoredChildrenSize = ReadWriteIOUtils.readInt(byteBuffer);
    return new DeleteDataNode(
        planNodeId, pathList, deleteStartTime, deleteEndTime, deserializedIndex);
  }
byte: type, integer: pathList.size(), long: deleteStartTime, deleteEndTime, searchIndex
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java