private void ensureRawDataReader(boolean shouldOpen) throws IOException {
    ensureOrcReader();
    if (rawDataReader != null) {
      if (shouldOpen && !rawDataReader.isOpen()) {
        long startTime = counters.startTimeCounter();
        rawDataReader.open();
        counters.incrWallClockCounter(LlapIOCounters.HDFS_TIME_NS, startTime);
      }
      return;
    }
    long startTime = counters.startTimeCounter();
    boolean useZeroCopy = (daemonConf != null) && OrcConf.USE_ZEROCOPY.getBoolean(daemonConf);
    InStream.StreamOptions options = null;
    if (orcReader.getCompressionKind() != CompressionKind.NONE) {
      options = InStream.options()
          .withCodec(OrcCodecPool.getCodec(orcReader.getCompressionKind())).withBufferSize(orcReader.getCompressionSize());
    }

    rawDataReader = LlapRecordReaderUtils.createDefaultLlapDataReader(
        DataReaderProperties.builder()
        .withFileSystemSupplier(fsSupplier).withPath(path)
        .withCompression(options)
        .withZeroCopy(useZeroCopy)
        .build());

    if (shouldOpen) {
      rawDataReader.open();
    }
    counters.incrWallClockCounter(LlapIOCounters.HDFS_TIME_NS, startTime);
  }
Reads the metadata for all stripes in the file.
llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java