[
https://issues.apache.org/jira/browse/FLINK-3187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15115056#comment-15115056
]
ASF GitHub Bot commented on FLINK-3187:
---------------------------------------
Github user uce commented on a diff in the pull request:
https://github.com/apache/flink/pull/1470#discussion_r50682036
--- Diff:
flink-core/src/main/java/org/apache/flink/api/common/restartstrategy/RestartStrategies.java
---
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.api.common.restartstrategy;
+
+import java.io.Serializable;
+
+/**
+ * This class defines methods to generate RestartStrategyConfigurations.
These configurations are
+ * used to create RestartStrategies at runtime.
+ *
+ * The RestartStrategyConfigurations are used to decouple the core module
from the runtime module.
+ */
+public class RestartStrategies {
+
+ /**
+ * Generates NoRestartStrategyConfiguration
+ *
+ * @return NoRestartStrategyConfiguration
+ */
+ public static RestartStrategyConfiguration noRestart() {
+ return new NoRestartStrategyConfiguration();
+ }
+
+ /**
+ * Generates a FixedDelayRestartStrategyConfiguration.
+ *
+ * @param restartAttempts Number of restart attempts for the
FixedDelayRestartStrategy
+ * @param delayBetweenAttempts Delay in-between restart attempts for
the FixedDelayRestartStrategy
+ * @return FixedDelayRestartStrategy
+ */
+ public static RestartStrategyConfiguration fixedDelayRestart(
+ int restartAttempts,
+ long delayBetweenAttempts) {
+
+ return new
FixedDelayRestartStrategyConfiguration(restartAttempts, delayBetweenAttempts);
+ }
+
+ public abstract static class RestartStrategyConfiguration implements
Serializable {
+ private static final long serialVersionUID =
6285853591578313960L;
+
+ private RestartStrategyConfiguration() {}
+
+ /**
+ * Returns a description which is shown in the web interface
+ * @return
--- End diff --
Javadocs
> Decouple restart strategy from ExecutionGraph
> ---------------------------------------------
>
> Key: FLINK-3187
> URL: https://issues.apache.org/jira/browse/FLINK-3187
> Project: Flink
> Issue Type: Improvement
> Affects Versions: 1.0.0
> Reporter: Till Rohrmann
> Assignee: Till Rohrmann
> Priority: Minor
>
> Currently, the {{ExecutionGraph}} supports the following restart logic:
> Whenever a failure occurs and the number of restart attempts aren't depleted,
> wait for a fixed amount of time and then try to restart. This behaviour can
> be controlled by the configuration parameters {{execution-retries.default}}
> and {{execution-retries.delay}}.
> I propose to decouple the restart logic from the {{ExecutionGraph}} a bit by
> introducing a strategy pattern. That way it would not only allow us to define
> a job specific restart behaviour but also to implement different restart
> strategies. Conceivable strategies could be: Fixed timeout restart,
> exponential backoff restart, partial topology restarts, etc.
> This change is a preliminary step towards having a restart strategy which
> will scale the parallelism of a job down in case that not enough slots are
> available.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)