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

Allow concurrent reconciliation only for distinct resources #616

Closed
sebbonnet opened this issue Sep 30, 2019 · 4 comments
Closed

Allow concurrent reconciliation only for distinct resources #616

sebbonnet opened this issue Sep 30, 2019 · 4 comments
Labels
triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@sebbonnet
Copy link

At present, reconcile.Reconciler allows multiple concurrent reconciliations through adjustment of the MaxConcurrentReconciles property to values above 1. However, this opens the possibility that there could be two concurrent reconciliations for the same resource, which is a situation we would like to avoid.

We would like to be able to configure the Reconciler so that it supports concurrent reconciliations only for distinct resources. In other words, it would be possible to concurrently reconcile resources A and B, but not to have two concurrent reconciliations for either A or B.

@DirectXMan12
Copy link
Contributor

This shouldn't happen -- the underlying workqueue should prevent this from occurring (see the bullet item for "stingy" in https://godoc.org/k8s.io/client-go/util/workqueue). Do you see this actually occurring?

@DirectXMan12 DirectXMan12 added the triage/needs-information Indicates an issue needs more information in order to work on it. label Sep 30, 2019
@DirectXMan12
Copy link
Contributor

(if you do, it's a bug)

@sebbonnet
Copy link
Author

That's a very good point - if it works as described it would simplify quite a few things on our end.
I'm currently testing this and will report here.

@sebbonnet
Copy link
Author

@DirectXMan12 thanks for pointing that out!
You were right, the reconciler internal queue prevents concurrent updates for the same resource name, but still allows concurrent updates for different resources when MaxConcurrentReconciles is greater than 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

2 participants