code: public Set<String> generateIdsToAbort() {
  		Set<String> idsToAbort = new HashSet<>();
  		for (int i = 0; i < safeScaleDownFactor; i++) {
  			idsToAbort.addAll(generateIdsToUse(i * poolSize * totalNumberOfSubtasks));
  		}
  		return idsToAbort;
  	}
docs: If we have to abort previous transactional id in case of restart after a failure BEFORE first checkpoint
  completed, we don't know what was the parallelism used in previous attempt. In that case we must guess the ids
  range to abort based on current configured pool size, current parallelism and safeScaleDownFactor.