Skip to content
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

Determine what to do with transactions in BankingStage buffered_packet_batches that exceed the cost model #25301

Closed
buffalu opened this issue May 17, 2022 · 2 comments

Comments

@buffalu
Copy link
Contributor

buffalu commented May 17, 2022

Problem

We recently discovered that a potential contributor to #24163 is due to transactions that exceed the cost model getting stuck in buffered_packet_batches and continually looped over, causing BankingStage starvation because it would not try to read more packets in.

Fixed that with #25236 and #25245

However, we're still wasting time trying to run the packet -> SanitizedTransaction -> qos algorithms on these packets that exceed the cost model for the same slot even though we know they won't get scheduled.

We need to remove those pending packets from the buffer and put them somewhere else and re-insert them on a new bank

Proposed Solution

Perhaps any transaction that exceeds the cost model is put into a separate queue? on a new bank, can stick them all at the front, but there's a good chance theres a lot of account contention.

might be better to distribute those packets across all the batches until a better scheduling algorithm is built.

@sakridge @carllin @aeyakovenko

@sakridge
Copy link
Member

This is a duplicate of #25261
Can we add detail there.

@buffalu
Copy link
Contributor Author

buffalu commented May 17, 2022

oops, yes!

@buffalu buffalu closed this as completed May 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants