@Override
  public CloseableIterator<RecordsWithSplitIds<MixedFormatRecordWithOffset<T>>> batch(
      String splitId, DataIterator<T> inputIterator) {
    Preconditions.checkArgument(inputIterator != null, "Input data iterator can't be null");
    // lazily create pool as it is not serializable
    if (pool == null) {
      this.pool = createPoolOfBatches(handoverQueueSize);
    }
    return new ArrayPoolBatchIterator(splitId, inputIterator, pool);
  }
This implementation stores record batch in array from recyclable pool
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/read/hybrid/reader/ArrayPoolDataIteratorBatcher.java