-
Notifications
You must be signed in to change notification settings - Fork 660
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
PVF: drop backing jobs if it is too late #5616
base: AndreiEres/pvf-execution-priority
Are you sure you want to change the base?
PVF: drop backing jobs if it is too late #5616
Conversation
21dc00d
to
8c8d5eb
Compare
1ab3834
to
ee8bd46
Compare
The CI pipeline was cancelled due to failure one of the required jobs. |
ee8bd46
to
0cdf0b3
Compare
0cdf0b3
to
c3f08c5
Compare
What if, during the waiting period, Babe misses a slot or two and block times elongate? Will we discard a viable candidate, then? And do we care? |
That's a good question. Do you mean a situation where a candidate should have been dropped under normal circumstances, but due to a BABE failure, received a chance to be backed? I would say under normal circumstances we have enough time to execute the job. If we have delayed it for so long, it means we're overwhelmed. Dropping this lucky candidate will have more impact than not dropping them in my opinion. |
We hopefully do not care much. In fact, we should explore back pressure in block production too, meaning a relay chain block producers drops some backing statements because they believe the network to be overloaded. A dispute or implicit escalation could be "paid for" by delaying like 30 candidates for example. |
004c647
to
8bbce8d
Compare
Fixes #5530
This PR introduces the removal of backing jobs that have been back pressured for longer than
allowedAncestryLen
, as these candidates are no longer viable.It makes sense to expect a result for a backing job execution within
allowedAncestryLen * 6s
. Since the execution time is not zero but within the range of0..exec_timeout
, we optimize the dropping by subtracting a time sufficient for job execution:allowedAncestryLen * 6s - min_exec_time
. Themin_exec_time
should fall within0..exec_timeout
and represents the minimum observed execution time.