Clara Xiong created FLINK-30119: ----------------------------------- Summary: (Flink Kubernetes Operator should store last savepoint in the SavepointInfo.lastSavepoint field whether it is completed or pending Key: FLINK-30119 URL: https://issues.apache.org/jira/browse/FLINK-30119 Project: Flink Issue Type: Improvement Components: Kubernetes Operator Reporter: Clara Xiong
End user experience proposal: Users can see the properties of last savepoint pending or completed and can get status in one of three states for the status: PENDING, SUCCEEDED and FAILED. If there is never savepoint taken or attempted, it is empty. Completed savepoints (manual, periodic and upgrade) are included Savepoint history, merged with savepoints form Flink job. Users can see this savepoint with PENDING status once one is trigger. Once completed, users can see last savepoint status changed to SUCCEEDED and included in savepoint history, or FAILED and not in savepoint history. If there is other savepoint triggered after completion before user checks, user cannot see the status of the one they triggered but they can check if the savepoint is in the history. Currently lastSavepoint only stores the last completed one, duplicate with savepoint history. To expose the properties of the currently pending savepoint or last savepoint that failed, we need to expose those info in separate fields in SavepointInfo. The internal logic of Operator uses those fields for triggering and retries and creates compatibility issues with client. It also use more space for etcd size limit. Code change proposal: Use lastSavepoint to store the last completed/attempted one and deprecate SavepointInfo.triggerTimstamp, SavepointInfo.triggerType and SavepointInfo.formatType. This will simplify the CRD and logic. Add SavepointInfo::retrieveLastSavepoint method to return the last succeeded one. Update getLastSavepointStatus to simplify the logic. -- This message was sent by Atlassian Jira (v8.20.10#820010)