-
Notifications
You must be signed in to change notification settings - Fork 5
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
SinkGroupSpec, DeploymentUnit, MaxBytesPerBatch #172
Conversation
Live with backward compatibility |
Old spec is compatible, tested OK. |
Metric is a problem, values being Gauge and not being set in some conditions never go down to 0 |
Two problems have come out after testing with 300 tables:
|
Things are not auto recovering from
|
Releases are getting stuck. |
CPU Profiling Update: opened a separate issue to solve this #173 |
Separate out realtime calculation and sinkgroup. Separation of concern. Main reason: Need batcher and loader lag to allocateDeploymentUnits
Easier to debug and easier to delete this way
Deadlock is current cannot be populated until reload pods are there and reload cannot be done until current is not there
This is so that, we only operate on the topics which are not realtime but only reloading. Not doing this makes the allocator generate duplicates as it operates on the realtime topics also since the current status still has realtime topics. So whenever realtime updates happen always fix the state of batcher reloading topics.
if maxReloadingTopics is reduced it does not take effect. |
sometimes batcher is stuck in session closure loop, mostly related to MaxProcessingTime, need to be checked
Update: trying internal kafka listners (Strimzi) strimzi/strimzi-kafka-operator#4688 This was fixed after using internal routing. |
Loader optimizations Time
Dividing loader into multiple podsGrouping loader into group of pods based on the lag it has. So that there is minimum shuffling. |
This is required so that batches are made of big size at the time of full sink. Solves Time part of #172 (comment)
This is required so that batches are made of big size at the time of full sink. Solves Time part of #172 (comment)
SinkGroupSpec, DeploymentUnit, MaxBytesPerBatch
This is required so that batches are made of big size at the time of full sink. Solves Time part of #172 (comment)
SinkGroupSpec, DeploymentUnit, MaxBytesPerBatch
This is required so that batches are made of big size at the time of full sink. Solves Time part of #172 (comment)
SinkGroupSpec, DeploymentUnit, MaxBytesPerBatch
Brings up new specification to define sinkGroup based batcher and loader configuration. Introduces the concept of deployment unit which the user can specify to solve the scaling issues described in #167.
maxBytesPerBatch
replacesmaxSize
as it makes all the topics operating in the same pod take the same amount of resources, paving the way for scaling being possible. As scaling requires homegeneous resource consumption across multiple topics.