[ https://issues.apache.org/jira/browse/FLINK-25689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jingsong Lee updated FLINK-25689: --------------------------------- Description: This ticket introduces an atomic commit transaction for file store. # Before calling {{{}FileStoreCommitImpl#commit{}}}, user should first call {{FileStoreCommitImpl#filterCommitted}} to make sure this commit is not done before. # Before committing, it will first check for conflicts by checking if all files to be removed currently exists. # After that it use the external {{FileStoreCommitImpl#lock}} (if provided) or the atomic rename of the file system to ensure atomicity. # If commit fails due to conflicts or exception it tries its best to clean up and aborts. # If atomic rename fails it tries again after reading the latest snapshot from step 2. > Introduce atomic commit > ----------------------- > > Key: FLINK-25689 > URL: https://issues.apache.org/jira/browse/FLINK-25689 > Project: Flink > Issue Type: Sub-task > Components: Table Store > Reporter: Caizhi Weng > Assignee: Caizhi Weng > Priority: Major > Labels: pull-request-available > Fix For: table-store-0.1.0 > > > This ticket introduces an atomic commit transaction for file store. > # Before calling {{{}FileStoreCommitImpl#commit{}}}, user should first call > {{FileStoreCommitImpl#filterCommitted}} to make sure this commit is not done > before. > # Before committing, it will first check for conflicts by checking if all > files to be removed currently exists. > # After that it use the external {{FileStoreCommitImpl#lock}} (if provided) > or the atomic rename of the file system to ensure atomicity. > # If commit fails due to conflicts or exception it tries its best to clean > up and aborts. > # If atomic rename fails it tries again after reading the latest snapshot > from step 2. -- This message was sent by Atlassian Jira (v8.20.1#820001)