一部のカスタムトリガーには、状態とタイマーを使用するものがあります(this example)。Apache Flinkは障害後にトリガータイマーを復元しますか?
私は失敗後の状態will be restoredを理解していますが、タイマーはどうですか?自動的に障害後に復元されますか?
一部のカスタムトリガーには、状態とタイマーを使用するものがあります(this example)。Apache Flinkは障害後にトリガータイマーを復元しますか?
私は失敗後の状態will be restoredを理解していますが、タイマーはどうですか?自動的に障害後に復元されますか?
はいタイマーは、障害発生時にチェックポイントされ、復元されます。
ただし、ここではわかりやすい細部があります。処理タイマーを登録するたびに、WindowOperator
は将来のタイムスタンプをキューに保存し、WindowOperator
をトリガーするタイマータスクをスケジュールします。 WindowOperator
がトリガーされると、タイムスタンプが現在のタイムスタンプよりも小さいすべての登録済みタイマーイベントが処理されます。
Flinkは、将来のタイムスタンプのキューだけをチェックポイントしますが、スケジュールされたタイマータスクはチェックポイントしません。つまり、復旧の場合、将来のタイムスタンプのキューは復元されますが、WindowOperator
(タイマーイベントをトリガーする)を起動するタイマータスクはありません。新しいタイマータスクを登録する新しい要素を待つ必要があります。このタイマータスクが起動すると、タイムスタンプの低い他のすべてのタイマーイベントが実行されます。
WindowOperator
をトリガーするタイマータスクがないため、この脆弱性はイベント時間処理には適用されません。