private StripeData createSliceToCache(
      CacheWriter.CacheStripeData diskData, StripeData cacheData) throws IOException {
    assert diskData != null;
    if (cacheData == null) {
      return new StripeData(diskData.knownTornStart, diskData.firstRowStart,
          diskData.lastRowStart, diskData.lastRowEnd, diskData.rowCount,
          diskData.encodings.toArray(new ColumnEncoding[diskData.encodings.size()]));
    } else {
      long rowCount = diskData.rowCount, encodingCount = diskData.encodings.size();
      validateCacheAndDisk(cacheData, rowCount, encodingCount, diskData);
      if (LlapIoImpl.LOG.isDebugEnabled()) {
        LlapIoImpl.LOG.debug("Creating slice to cache in addition to an existing slice "
          + cacheData.toCoordinateString() + "; disk offsets were "
          + diskData.toCoordinateString());
      }
      // Note: we could just do what we already do above from disk data, except for the validation
      // that is not strictly necessary, and knownTornStart which is an optimization.
      StripeData sliceToCache = StripeData.duplicateStructure(cacheData);
      for (int i = 0; i < diskData.encodings.size(); ++i) {
        sliceToCache.getEncodings()[i] = diskData.encodings.get(i);
      }
      sliceToCache.setKnownTornStart(Math.min(
          diskData.knownTornStart, sliceToCache.getKnownTornStart()));
      return sliceToCache;
    }
  }
Unlike the other overload of processOneSlice, doesn't cache data.
llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/SerDeEncodedDataReader.java