Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ovn-controller: Run I-P engine even when no SB txn is available.
If the last ovn-controller main loop run started a transaction to the Southbound DB and the transaction is still in progress, ovn-controller will not call engine_run(). In case there were changes to the DB, engine_need_run() would return true which would trigger an immediate forced recompute in the next processing loop iteration. However, there are scenarios when updates can be processed incrementally even if no Southbound DB transaction is available. One example, often seen in the field, is when the MAC_Binding table is updated. Currently such an update received while a transaction is still committing would trigger a forced recompute. This patch performs only incremental processing when the SB DB txn is NULL, which means executing change_handler() methods only, without calling the run() methods of the I-P engine nodes. Assuming that some change handlers need to update the DB and that some don't, if the SB DB txn is NULL: - if the incoming change doesn't trigger a SB DB update (currently true for all existing change handlers) then the change handler might complete without aborting if it doesn't trigger a run() of the node. - if the incoming change tries to perform a SB DB update, the change handler should return false (SB DB txn is NULL) triggering the engine to call run() and abort computation. CC: Han Zhou <hzhou@ovn.org> CC: Numan Siddique <numans@ovn.org> Signed-off-by: Dumitru Ceara <dceara@redhat.com> Signed-off-by: 0-day Robot <robot@bytheb.org>
- Loading branch information