1) A restart in one region only increments the count by 1, independent of how many tasks from that region fail at the same time. If tasks from different regions fail at the same time, then the bound is incremented by the number of affected regions.

2)

I would consider what failure rate is acceptable if there were no regions, and then multiple that but the number of slots to offset task executor failures.


Failures in the application (e.g., a source failing for some reason) will generally behave, failure-rate wise, as if regions would not exist. They are sporadic, and the chance of them appearing in different regions at the same time seems rather small.


On 15/07/2020 00:16, Jiahui Jiang wrote:
Hello Flink, I have some questions regarding to the guideline on configuring restart strategy.

I was testing a job with the following setup:

 1. There are many tasks, but currently I'm running with only 2
    parallelism, but plenty of task slots (4 TM and 4 task slot in
    each TM).
 2. It's ran in k8s with HA enabled.
 3. The current restart strategy is 'failure-rate' with 30mins failure
    interval, 1 min delay interval and 3 failure rate.

When a TM got removed by k8s, it looked like that caused multiple failure to happen all at once. In the job manager log, I'm seeing different task failed with the same stacktrace 'Heartbeat of taskManager with id {SOME_ID} timed out' around the same time.

I understand that all the tasks that were running on this taskManager would fail. But still have these following questions:

Questions:

 1. What count as one failure for a restartStrategy? It doesn't look
    like every failed task counts towards one failure according to my
    other jobs. Is it because we have failover strategy defaults to be
    region, and each failure only trigger part of the job graph to
    restart, and the rest of the 'not retriggered' job graph can still
    cause more failure that will be counted towards failure rate?
 2. If that's the case, what will be the recommended way to set
    restart strategy? If we don't want to hard code a number for every
    single pipeline we are running, is that a good way to infer how to
    set the failure rate?

Thank you so much!
Jiahui


Reply via email to