Route notification optimisation
To notify route owner, for each prefix installed, a notification message is sent. Dataplane result is a linear function, and the time will increase, and may lead to starvation issues under heavy loaded conditions.
It has been observed that the thread in charge of the result takes time, because there are many routes results, and because the I/O operations to zebra are repeated. Lets try to optimize it by:
- by separating the route notification job in a separate thread
- by sending zapi batches messages to reduce the number of I/O operations.
The below graph is what has been observed without route optimisations:
the picture is vivid, but a little hard to parse. which part of that do you think will change? the actual IO is done by the per-zapi-client pthread; are you trying to reduce the locking overhead somewhere? or the signalling overhead between the main pthread and the zclient pthreads? or ... something else?
looks okay ... waiting on @mjstapp 's comment
This was just for exposing the idea. Moving it to draft, I don't have time to process it right now
This pull request has conflicts, please resolve those before we can evaluate the pull request.
This PR is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this PR closed.