protected PutRequest createPutRequest() {
      return new PutRequest(NonBlockingRouter.correlationIdGenerator.incrementAndGet(), routerConfig.routerHostname,
          chunkBlobId, chunkBlobProperties, ByteBuffer.wrap(chunkUserMetadata), buf.retainedDuplicate(),
          buf.readableBytes(), BlobType.DataBlob, encryptedPerBlobKey != null ? encryptedPerBlobKey.duplicate() : null,
          isChunkCompressed);
    }
Create and return the {@link PutRequest} associated with the current chunk. This method should only be called
when the chunk is in ready state.
@return the crated {@link PutRequest}.
ambry-router/src/main/java/com/github/ambry/router/PutOperation.java