Details

    Description

      This ticket introduces an atomic commit transaction for file store.

      1. Before calling FileStoreCommitImpl#commit, user should first call FileStoreCommitImpl#filterCommitted to make sure this commit is not done before.
      2. Before committing, it will first check for conflicts by checking if all files to be removed currently exists.
      3. After that it use the external FileStoreCommitImpl#lock (if provided) or the atomic rename of the file system to ensure atomicity.
      4. If commit fails due to conflicts or exception it tries its best to clean up and aborts.
      5. If atomic rename fails it tries again after reading the latest snapshot from step 2.

      Attachments

        Issue Links

          Activity

            People

              TsReaper Caizhi Weng
              TsReaper Caizhi Weng
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: