public Set < String > generateIdsToAbort ( ) { Set < String > idsToAbort = new HashSet <> ( ) ; for ( int i = 0 ; i < safeScaleDownFactor ; i ++ ) { idsToAbort . addAll ( generateIdsToUse ( i * poolSize * totalNumberOfSubtasks ) ) ; } return idsToAbort ; }
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 .