-
Notifications
You must be signed in to change notification settings - Fork 168
Description
Code of Conduct
- I agree to follow this project's Code of Conduct
Search before asking
- I have searched in the issues and found no similar issues.
Describe the bug
-
When enabling Netty, the current timing of releasing
readMemoryin the code is incorrect because the methodclient.getChannel().writeAndFlush()is asynchronous. If we releasereadMemorydirectly, it will result inreadMemorybeing released before it has a chance to take effect. And the file reading only occurs after thewriteAndFlushmethod is called. We should add aChannelFutureListenerand use its callback mechanism to releasereadMemory. This can ensure thewriteAndFlushmethod is truly completed. -
We haven't set a limit on the maximum number of concurrent requests(for reading local shuffle data) that can be processed at the same time; we only controlled the maximumreadCapacityof the buffer when reading local shuffle data. This approach falls short. In our tests, we discovered that the metricread_used_buffer_sizecould potentially only reach up to 3.75GB, yet the system load on the shuffle server was already high. This suggests that relying solely onreadCapacityto manage the reading of local shuffle data is inadequate.
Affects Version(s)
master
Uniffle Server Log Output
No response
Uniffle Engine Log Output
No response
Uniffle Server Configurations
No response
Uniffle Engine Configurations
No response
Additional context
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!