-
Notifications
You must be signed in to change notification settings - Fork 3
feat(memory): Introduce a pluggable mem-buffer mechanism and an optimized staging buffer impl #564
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
feat(memory): Introduce a pluggable mem-buffer mechanism and an optimized staging buffer impl #564
Conversation
|
hi @zuston , could you pls help me review this PR? |
zuston
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your great work, @thuongle2210 — this is definitely moving in the right direction 👍
Before merging this, I’d like to make the buffer implementation more pluggable.
Would you mind abstracting the buffer into a trait, and then introducing different implementations on top of it?
I’m happy to bring in the optimization in this part of the codebase, but this path is critical for our internal shuffle service. Before rolling it out, I plan to run long-term performance tests as well as partial online bandwidth benchmarks. Based on the results, having a pluggable design will give us much more flexibility to iterate and tune.
Thanks again for the solid progress — looking forward to your thoughts on this.
|
Hi @zuston, do you mean I should define a trait—for example, |
Yes. Please go ahead 🛫 |
…perations, implement trait for memory_buffer
…tation feat: make buffer implementation pluggable
|
Hi @zuston, I made the buffer implementation more pluggable. Could you please review it? |
I have checked this PR, thanks for your great work! Overall lgtm. But for the better pluggable mechanism, I have refactored something. Could you help take a look? @thuongle2210 |
|
LGTM! @zuston |
|
thanks for your contribution! @thuongle2210 Let's merge this. 🎉 |
Description
Resolves issues-546 .
This PR introduces a pluggable mem-buffer mechanism, and based on this, this also introduces a optimized staging lookup implementaion of mem-buffer.
Changelogs of
optimized staging lookup implVec<Block>for contiguous memory accessbatch_boundariesvector to track batch start positionsblock_position_indexfor O(1) block ID to vector index mappingPerformance Impact