@Override
      public void onCompletion(Long result, Exception exception) {
        bytesWritten.addAndGet(result);
        if (exception != null) {
          setOperationException(exception);
        }
        int currentNumChunk = numChunksWrittenOut.get();
        ByteBuf byteBuf = chunkIndexToBufWaitingForRelease.remove(currentNumChunk);
        if (byteBuf != null) {
          ReferenceCountUtil.safeRelease(byteBuf);
        }
        lastChunkWrittenDoneTime.set(SystemTime.getInstance().milliseconds());
        numChunksWrittenOut.incrementAndGet();
        routerCallback.onPollReady();
      }
A class that implements the result of this GetBlobOperation. This is instantiated if/when the first data chunk of
the blob arrives, when the operation callback is invoked.
ambry-router/src/main/java/com/github/ambry/router/GetBlobOperation.java