-
Notifications
You must be signed in to change notification settings - Fork 590
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
Move rate limit from flow control to within source executors (snapshot read, source, dml) #15790
Comments
We can do it step by step, per executor. |
If risingwavelabs/rfcs#81 this RFC is going to be implemented, seems this can be not a problem. Though we don't have a clear timeline for this now. |
I vote for the overall goal to move rate limit from flow control to within source executors, spreading data into more epochs. But can you elaborate more on "we need a another channel to capture alter rate limit changes". |
May I know the motivation of the issue? What's the limitation of wrapping source executors with the |
It stems from a specific edge case: rate limiting smaller than chunk size with flow control executor will just cause barrier latency to spike. This is because rate limiting a chunk would mean the barrier before it will be blocked, until the entire chunk is processed. As such, we add some chunk splitting logic upstream, inside executors themselves, before the data stream gets merged with the barrier stream from meta. Now we have the logic for rate limiting split across flow control, and each executor. Additionally, the way it works is unintuitive (and perhaps unreliable sometimes), it relies on upstream to bias to barrier side to let it bypass. It is simpler and more intuitive to relocate the rate limit logic into executors. Now all the logic is in one place, and rate limit happens at the data source, so it is clear that it won't block barriers. |
under developing in #15948 |
No description provided.
The text was updated successfully, but these errors were encountered: