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(backend): On Pipeline delete, clean all associated Minio records #7542

Closed
wants to merge 1 commit into from

Conversation

difince
Copy link
Member

@difince difince commented Apr 11, 2022

On Pipeline delete, clean all Object Store (Minio) records associated with the Pipeline and its Versions

Fixes: #7368

Signed-off-by: Diana Atanasova dianaa@vmware.com

Description of your changes:

Checklist:

@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign linchin after the PR has been reviewed.
You can assign the PR to them by writing /assign @linchin in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@difince difince changed the title fix(backend) On Pipeline delete, clean all associated Object Store records fix(backend): On Pipeline delete, clean all associated Object Store records Apr 11, 2022
… with the Pipeline and its Versions

Fixes: kubeflow#7368

Signed-off-by: Diana Atanasova <dianaa@vmware.com>
glog.Errorf("%v", errors.Wrapf(err, "Failed to delete pipeline file for pipeline %v", pipelineId))
errChan := r.objectStore.DeleteFiles(fileNames)
for err1 := range errChan {
glog.Errorf("%v", errors.Wrapf(err1, "Failed to delete pipeline file for pipeline %v.", pipelineId))
return nil
}
Copy link
Member Author

@difince difince Apr 11, 2022

Choose a reason for hiding this comment

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

Note that I keep the current implementation - if Minios requests fail I print the errors from MInio down and return from the method without any error (even though the Pipeline and its Versions are not deleted. )

// Not fail the request if this step failed. A background run will do the cleanup.
// #388

I cannot find this background run that should do the cleanup.

Tell me, if you think this behavior needs to change

@difince
Copy link
Member Author

difince commented Apr 13, 2022

/assign @zijianjoy
/assign @difince

@difince difince changed the title fix(backend): On Pipeline delete, clean all associated Object Store records fix(backend): On Pipeline delete, clean all associated Minio records Apr 28, 2022
@difince
Copy link
Member Author

difince commented Apr 28, 2022

cc: @annajung, @juliusvonkohout
If you have a change, please review

@juliusvonkohout
Copy link
Member

Actually i just had a discussion with @zijianjoy from google and maybe we will get rid of pipeline template/definitions on Minio altogether. He needs to discuss it with his team.

I do not see a point in storing the pipeline on Minio AND MySQL at the same time and hope that his team agrees. THis would also make the remaining namespace isolation easier. Maybe we should wait until @zijianjoy gets a descision from his team.

Furthermore i have something orthogonal to this concerning the cache server. While this here would fix pipeline versions, i am trying to fix the cache server when artifacts have been deleted from S3 due to lifecyclepolicies. My collegue will prepare a PR that make the cache server check whether artifacts still exist on minio before assuming that they are still cached.

@difince
Copy link
Member Author

difince commented Apr 29, 2022

Thank you @juliusvonkohout for your clarifications on both Minos vs Mysql and the cached issue.
Let's see what the final decision will be and if necessary I will close the PR and the issue as no longer relevant

@difince
Copy link
Member Author

difince commented Jul 1, 2022

/assign @difince

@juliusvonkohout
Copy link
Member

juliusvonkohout commented Jul 4, 2022

It depends on the use case. I would like the pipeline definition AND pipeline artifacts be deleted from minio if they are deleted from the data base. Related is also #7938
If @zijianjoy decides to move the pipeline definition to MySQL only then there are still artifacts from old runs.

@difince
Copy link
Member Author

difince commented Dec 7, 2022

Closing the PR due to inactivity for too longtime

@difince difince closed this Dec 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[backend] DeletePipeline does not clean PipelienVersions data from Minio
2 participants