-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Rework the pipeline: batch allocation + deterministic backoff #1769
base: main
Are you sure you want to change the base?
Conversation
The performance regression on Linux has been fixed. This PR gives the same throughput as The current PR version embeds a batch reusing mechanism: one single batch is kept in memory, and if it is not available (meaning it is currently owned by the tx task), a new one is allocated on demand, respecting the limit fixed by the configuration. The batch will be refilled by the tx task after use, the next one being dropped if the slot is already refilled. Here are the flamegraphs of |
deadline: None, | ||
wait_time, | ||
impl StageIn { | ||
const SMALL_BATCH_SIZE: BatchSize = 1 << 11; |
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.
This constant is of course arbitrary. It can be exposed in configuration if needed.
This reverts commit 6360eb6
fd29946
to
524cf7b
Compare
it breaks unixpipe test
See more details in #1769 (comment)