You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Shard BPS per chain group to prevent oversending requests (#4176)
## Motivation
Right now we have a number of chain groups, all together trying to reach
a certain BPS. They check if the BPS was reached by checking this one
atomic variable.
However, you could reach a situation where one of the chain groups
achieves the BPS, but the other `num_chain_groups - 1` chain groups all
have block proposals in flight. Meaning that in the worse case we could
be overshooting our BPS by 2 * BPS - 1 🤦🏻♂️
## Proposal
Make each chain group have a BPS share that they need to achieve, which
is controlled by their own atomic variable.
The BPS control task will now sum all those atomic variables to make
sure we reached the desired BPS/TPS.
This prevents the race condition that causes us to overshoot the BPS.
## Test Plan
Tested on a deployed network. Was seeing before that we were
overshooting by 1.5x. Now we're back to normal.
## Release Plan
- Nothing to do / These changes follow the usual release cycle.
0 commit comments