-
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
Batching and re-build the chunk in the exchange receiver to avoid too low selectivity visibility bitmap #15713
Comments
Is it possible that we rearrange/rebuild the rows in the chunk before Then, on the receiver side, we don't compact and still get |
But what is the advantage comparing with rebuilding in the receiver side 🤔 Their overhead are both one more copy and construct the chunk |
each receiver side needs to rebuild once vs just rebuild once on the sender side Edit: |
Update: rebuild the chunk in any case will make the nexmark performance degrade #16055 |
This issue has been open for 60 days with no activity. If you think it is still relevant today, and needs to be done in the near future, you can comment to update the status, or just manually remove the You can also confidently close this issue as not planned to keep our backlog clean. |
proposed by @fuyufjh
Currently, our stream exchange highly depends on chunk's visibility bitmap. In the sender side, the chunk is cloned into each dispatcher and then each dispatcher eliminates the rows not belong to the downstream shard.
risingwave/src/stream/src/executor/dispatch.rs
Line 808 in 7f6dd61
So supposing there are N parallelisms of the downstream fragment, the selectivity of the visibility bitmap would be 1/N.
And on the Receiver side, it will receive these two kind of chunk
chunk_size/N
) from the remote shuffle1/N
)They are both not friendly to our vectorized processing engine
The text was updated successfully, but these errors were encountered: