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

feat(meshservice): mitigate and handle resource conflicts #11385

Merged

Conversation

jakubdyszkiewicz
Copy link
Contributor

Checklist prior to review

Fix #10511

I think the best strategy for now is to

  • Introduce jitter so not all components start at once
  • Log on info, not on ERROR

Lock might be too aggressive and batching updates are complicated to implement for now.
I noticed that in E2E jitter already solves a lot of such issues. We can revisit other strategies if needed

  • Link to relevant issue as well as docs and UI issues --
  • This will not break child repos: it doesn't hardcode values (.e.g "kumahq" as a image registry) and it will work on Windows, system specific functions like syscall.Mkfifo have equivalent implementation on the other OS --
  • Tests (Unit test, E2E tests, manual test on universal and k8s) --
    • Don't forget ci/ labels to run additional/fewer tests
  • Do you need to update UPGRADE.md? --
  • Does it need to be backported according to the backporting policy? (this GH action will add "backport" label based on these file globs, if you want to prevent it from adding the "backport" label use no-backport-autolabel label) --

@jakubdyszkiewicz jakubdyszkiewicz requested a review from a team as a code owner September 11, 2024 16:03
@jakubdyszkiewicz jakubdyszkiewicz requested review from lobkovilya and Icarus9913 and removed request for a team September 11, 2024 16:03
@Icarus9913
Copy link
Contributor

Further thought:
Maybe we could also use the kubernetes Retry function to handle with our update operation in the future?

https://github.com/kubernetes/apimachinery/blob/4e174c5e3655ac47294239904b796671c5d9dfd6/pkg/util/wait/backoff.go#L459

@jakubdyszkiewicz
Copy link
Contributor Author

@Icarus9913 we already have .Upsert() function with retry backoff and jitter. The problem is that you need to first retrieve the resource on retry so writing this logic is a bit meh when you don't want to pay the cost upfront for retrieving a resource because you already fetched the list

@jakubdyszkiewicz jakubdyszkiewicz merged commit 735321c into kumahq:master Sep 12, 2024
15 checks passed
@jakubdyszkiewicz jakubdyszkiewicz deleted the feat/mitigate-conflicts branch September 12, 2024 06:55
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Avoid conflicts on MeshService updates
3 participants