-
Notifications
You must be signed in to change notification settings - Fork 120
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
Implementations of Watch that can be used for most storage layers #453
Labels
kind/feature
New feature
Comments
|
What do you think of it. @Iceber |
With the addition of the new component, I think one issue we can't ignore is the behavior of the Synchor and Apiserver after the |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What would you like to be added?
We currently have Watch capability in memory storage, but it requires the binding-apiserver command to run both Clusterpedia APIServer and Clusterpedia Clustersynchro Manager, which prevents us from scaling the service horizontally
We wanted to find a generic Watch mechanism that could be reused on most storage tiers and that would not affect the horizontal scaling of the Clusterpedia APIServer.
For the Watch feature, there are roughly three ways to implement it:
Customized to a specific storage layer, using a storage layer with its own event notifications, such as memory, etcd-based Watch, or redis publish-and-subscribe for Watch
But these specific storage layers may not be good for resource retrieval, and we will lose some performance or functionality for complex resource retrieval
A middleware-based subscription publishing for messages, decoupling Query/Watch(APIServer) and collecting resources through a message middleware.
But the introduction of middleware will increase the complexity of the architecture and may be troublesome for Watch handling when the middleware is down
Forwarding Watch requests to the collection of resources -- ClusterSynchroManager
But the ClusterSynchroManager may need to increase the cache of some events, which inadvertently brings uncontrollable memory pressure
In addition, the future Agent mode will add a resource collector component that can be scaled horizontally, which will not be able to forward Watch requests correctly
Why is this needed?
#452
The text was updated successfully, but these errors were encountered: