This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
Handle burstiness of requests well for the dispute coordinator #5445
Labels
T5-parachains_protocol
This PR/Issue is related to Parachains features and protocol changes.
We found the dispute-coordinator to be the heaviest subsystem in terms of CPU usage. While performance is worked on, we should also minimize the effects a loaded dispute-coordinator has on other subsystems.
In particular we noticed that load on the dispute coordinator is rather bursty:
backing and approval-distribution no longer wait for confirmation, when sending votes to the dispute coordinator - so they will only be affected directly if the channel gets full. We can mitigate that by providing more leeway for bursts and just increase the channel size.
dispute distribution does wait for confirmation on vote import, but not one by one, but runs a couple of imports in parallel, so we can improve performance here, by increasing the number of parallel requests.
Really crucial are though the reading calls to the dispute-coordinator, like asking fore recent disputes, or statements as this happens for example in the provisioner. Or chain selection asking for the undisputed chain. If ToF is high for messages due to load/bursts on the dispute-coordinator those reads will be significantly delayed, which has direct consequences for those subsystems.
Summary
Of these 3, I would consider 2 the most important one. Here we should also check how reading of bounded/unbounded channels is implemented. In particular we should ensure that the bounded channel will not starve the unbounded channel, the
unbounded
channel should be considered "priority".The text was updated successfully, but these errors were encountered: