void initialize(int index, CompositeBlobInfo.ChunkMetadata chunkMetadata) {
      chunkIndex = index;
      chunkBlobId = (BlobId) chunkMetadata.getStoreKey();
      offset = chunkMetadata.getOffset();
      chunkSize = chunkMetadata.getSize();
      chunkOperationTracker = getOperationTracker(chunkBlobId.getPartition(), chunkBlobId.getDatacenterId(),
          RouterOperation.GetBlobOperation, chunkBlobId);
      progressTracker = new ProgressTracker(chunkOperationTracker);
      state = ChunkState.Ready;
      initializedTimeMs = time.milliseconds();
      timeLimitForRetryInMs = initializedTimeMs + TimeUnit.SECONDS.toMillis(routerConfig.routerGetBlobRetryLimitInSec);
    }
Assign a chunk of the overall blob to this GetChunk.
@param index the index of the chunk of the overall blob that needs to be fetched through this GetChunk.
@param chunkMetadata the id, data content size, and offset (relative to the total size)
                          of the chunk of the overall blob that needs to be fetched through this GetChunk.
ambry-router/src/main/java/com/github/ambry/router/GetBlobOperation.java