Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: do not retake backup if it already exists #12626

Merged
merged 3 commits into from May 3, 2023

Conversation

deepthidevaki
Copy link
Contributor

@deepthidevaki deepthidevaki commented May 2, 2023

Description

In this PR, we check if the backup exists for that partition by listing using the wildcard. This returns the backups taken by other nodes as well. The backup is taken only if no backup exists for that partition with the same checkpointId. Previiously, we were checking using the full backupId which included the nodeId, so it can only find the backup taken by the same node. This is not ideal, because it can result in duplicate unnecessary backups, for example after restoring from a backup.

Related issues

closes #12623

Definition of Done

Not all items need to be done depending on the issue and the pull request.

Code changes:

  • The changes are backwards compatibility with previous versions
  • If it fixes a bug then PRs are created to backport the fix to the last two minor versions. You can trigger a backport by assigning labels (e.g. backport stable/1.3) to the PR, in case that fails you need to create backports manually.

Testing:

  • There are unit/integration tests that verify all acceptance criterias of the issue
  • New tests are written to ensure backwards compatibility with further versions
  • The behavior is tested manually
  • The change has been verified by a QA run
  • The impact of the changes is verified by a benchmark

Documentation:

  • The documentation is updated (e.g. BPMN reference, configuration, examples, get-started guides, etc.)
  • If the PR changes how BPMN processes are validated (e.g. support new BPMN element) then the Camunda modeling team should be informed to adjust the BPMN linting.

Other teams:
If the change impacts another team an issue has been created for this team, explaining what they need to do to support this change.

Please refer to our review guidelines.

Previously, we were only checking for backups taken by this node.
However, there could be backups taken by another node. For example, after
restore the checkpoint record is processed again, but it must not re-take
the backup. To prevent that, we should check for all backups with the given
backup id.
Updated the test to remove mocking of InProgressBackup. The existing test
was updated to use list instead of getStatus to find duplicate backups.
@deepthidevaki deepthidevaki added backport stable/8.1 backport stable/8.2 Backport a pull request to 8.2.x labels May 2, 2023
@deepthidevaki deepthidevaki marked this pull request as ready for review May 3, 2023 07:11
Copy link
Member

@oleschoenburg oleschoenburg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice and simple solution, thanks @deepthidevaki 👍

Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com>
@deepthidevaki
Copy link
Contributor Author

bors merge

@zeebe-bors-camunda
Copy link
Contributor

Build succeeded:

@zeebe-bors-camunda zeebe-bors-camunda bot merged commit 43b055b into main May 3, 2023
32 checks passed
@zeebe-bors-camunda zeebe-bors-camunda bot deleted the dd-12623-backup branch May 3, 2023 14:32
@backport-action
Copy link
Collaborator

Backport failed for stable/8.1, because it was unable to cherry-pick the commit(s).

Please cherry-pick the changes locally.

git fetch origin stable/8.1
git worktree add -d .worktree/backport-12626-to-stable/8.1 origin/stable/8.1
cd .worktree/backport-12626-to-stable/8.1
git checkout -b backport-12626-to-stable/8.1
ancref=$(git merge-base 24edda5fbd313a209370b7a7f7c2f9f700c28d3d 65e08d97ea7530e4d554e48dde53a89ebb516f9e)
git cherry-pick -x $ancref..65e08d97ea7530e4d554e48dde53a89ebb516f9e

@backport-action
Copy link
Collaborator

Successfully created backport PR for stable/8.2:

zeebe-bors-camunda bot added a commit that referenced this pull request May 3, 2023
12656: [Backport stable/8.2] fix: do not retake backup if it already exists r=deepthidevaki a=backport-action

# Description
Backport of #12626 to `stable/8.2`.

relates to #12623

Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@gmail.com>
Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@users.noreply.github.com>
zeebe-bors-camunda bot added a commit that referenced this pull request May 4, 2023
12662: [Backport stable/8.1] fix: do not retake backup if it already exists r=oleschoenburg a=deepthidevaki

Backport of #12626 to stable/8.1.

relates to #12623

Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@gmail.com>
Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@users.noreply.github.com>
zeebe-bors-camunda bot added a commit that referenced this pull request May 4, 2023
12662: [Backport stable/8.1] fix: do not retake backup if it already exists r=deepthidevaki a=deepthidevaki

Backport of #12626 to stable/8.1.

relates to #12623

12665: [Backport stable/8.1] refactor(snapshots): Replace `Stream.toList` and the for each cycle to `Stream.forEachOrdered` r=deepthidevaki a=backport-action

# Description
Backport of #12576 to `stable/8.1`.

relates to #12575

Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@gmail.com>
Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@users.noreply.github.com>
Co-authored-by: Alexey Vinogradov <vinogradov.a.i.93@gmail.com>
@oleschoenburg oleschoenburg added the version:8.2.5 Marks an issue as being completely or in parts released in 8.2.5 label May 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport stable/8.2 Backport a pull request to 8.2.x version:8.2.5 Marks an issue as being completely or in parts released in 8.2.5
Projects
None yet
Development

Successfully merging this pull request may close these issues.

After restoring from backup, a partition re-takes the backup
3 participants