Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/1954#discussion_r70094058 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/restart/FailureRateRestartStrategy.java --- @@ -36,19 +36,19 @@ public class FailureRateRestartStrategy implements RestartStrategy { private final Duration failuresInterval; private final Duration delayInterval; - private EvictingQueue<Long> restartTimestampsQueue; + private FixedSizeFifoQueue<Long> restartTimestampsQueue; private boolean disabled = false; public FailureRateRestartStrategy(int maxFailuresPerInterval, Duration failuresInterval, Duration delayInterval) { - Preconditions.checkArgument(maxFailuresPerInterval > 0, "Maximum number of restart attempts per time unit must be greater than 0."); Preconditions.checkNotNull(failuresInterval, "Failures interval cannot be null."); - Preconditions.checkNotNull(failuresInterval.length() > 0, "Failures interval must be greater than 0 ms."); Preconditions.checkNotNull(delayInterval, "Delay interval cannot be null."); - Preconditions.checkNotNull(delayInterval.length() >= 0, "Delay interval must be at least 0 ms."); + Preconditions.checkArgument(maxFailuresPerInterval > 0, "Maximum number of restart attempts per time unit must be greater than 0."); + Preconditions.checkArgument(failuresInterval.length() > 0, "Failures interval must be greater than 0 ms."); + Preconditions.checkArgument(delayInterval.length() >= 0, "Delay interval must be at least 0 ms."); this.failuresInterval = failuresInterval; this.delayInterval = delayInterval; - this.restartTimestampsQueue = EvictingQueue.create(maxFailuresPerInterval); + this.restartTimestampsQueue = new FixedSizeFifoQueue<>(maxFailuresPerInterval); --- End diff -- Can't we simply use `new ArrayDeque(maxFailuresPerInterval)`? Of course, we would then allocate 2^(ceil(log(maxFailuresPerInterval)/log(2)) elements, but this should be ok. We could then check in the `restart` method via the `size` method whether the queue is full or not.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---