Hi Mark, Thank you for taking the time to review the series and for applying the patches to main.
Best regards, Paulo Em qua., 7 de out. de 2026 às 12:53, Mark Michelson <[email protected]> escreveu: > Thanks for v5 Paulo. For the entire series: > > Acked-by: Mark Michelson <[email protected]> > > I added my ack to all the patches and pushed them to main. > > On Tue, Oct 6, 2026 at 4:08 PM Paulo Guilherme Silva via dev > <[email protected]> wrote: > > > > Currently ovn-ic recomputes its entire transit-switch/gateway/route > > state on every change to the IC databases (or the local NB/SB). On > > large interconnected deployments this full recompute dominates the > > ovn-ic runtime and adds significant latency between a configuration > > change in one AZ and its propagation to the others. > > > > This series introduces incremental processing (I+P) to ovn-ic, mirroring > > the engine-node model already used by ovn-northd and ovn-controller. The > > full recompute is split into per-subsystem engine nodes, and each node > > gets an incremental change handler so that a change to a single object no > > longer forces a global recompute. > > > > Approach > > -------- > > - The monolithic recompute is first refactored into per-subsystem > > *_run functions and then into independent engine nodes (az, dp_enum, > > gateway, ts, tr, port_binding, route, service_mon). > > - Each node gains an incremental handler that reacts only to the > > tracked changes on its inputs, falling back to recompute when a > > change cannot be handled incrementally. > > > > Testing > > ------- > > - make check / make check-ovn-ic all pass. > > - Scale test as above: > > 3: perf-ovn-ic.at:233 ovn-ic basic scale test -- 200 VPCs x 3 AZs x > 4 TSs: > > incremental vs recompute -- parallelization=yes > > 4: perf-ovn-ic.at:239 ovn-ic basic scale test -- 400 VPCs x 3 AZs x > 4 TSs: > > incremental vs recompute -- parallelization=yes > > > > Results > > ------- > > 3: ovn-ic basic scale test -- 200 VPCs x 3 AZs x 4 TSs: incremental vs > recompute -- parallelization=yes > > Results for 'Incremental: +1 VPC at 200-VPC scale (node handler times)' > > --- > > en_ts incremental Maximum (msec): 5 > > en_ts incremental Average (msec): 0.990723 > > en_tr incremental Maximum (msec): 0 > > en_tr incremental Average (msec): 0 > > en_route incremental Maximum (msec): 6 > > en_route incremental Average (msec): 1.458008 > > en_port_binding incremental Maximum (msec): 0 > > en_port_binding incremental Average (msec): 0 > > en_tunnel_key incremental Maximum (msec): 1 > > en_tunnel_key incremental Average (msec): 0 > > > > 3: ovn-ic basic scale test -- 200 VPCs x 3 AZs x 4 TSs: incremental vs > recompute -- parallelization=yes > > Results for 'Full recompute at 201-VPC scale (node times)' > > --- > > en_ts recompute Maximum (msec): 3 > > en_ts recompute Average (msec): 3.000000 > > en_tr recompute Maximum (msec): 0 > > en_tr recompute Average (msec): 0.000000 > > en_route recompute Maximum (msec): 155 > > en_route recompute Average (msec): 155.000000 > > en_port_binding recompute Maximum (msec): 62 > > en_port_binding recompute Average (msec): 62.000000 > > en_tunnel_key recompute Maximum (msec): 3 > > en_tunnel_key recompute Average (msec): 3.000000 > > > > 4: ovn-ic basic scale test -- 400 VPCs x 3 AZs x 4 TSs: incremental vs > recompute -- parallelization=yes > > Results for 'Incremental: +1 VPC at 400-VPC scale (node handler times)' > > --- > > en_ts incremental Maximum (msec): 4 > > en_ts incremental Average (msec): 1.301319 > > en_tr incremental Maximum (msec): 0 > > en_tr incremental Average (msec): 0 > > en_route incremental Maximum (msec): 5 > > en_route incremental Average (msec): 2.055176 > > en_port_binding incremental Maximum (msec): 0 > > en_port_binding incremental Average (msec): 0 > > en_tunnel_key incremental Maximum (msec): 0 > > en_tunnel_key incremental Average (msec): 0 > > > > 4: ovn-ic basic scale test -- 400 VPCs x 3 AZs x 4 TSs: incremental vs > recompute -- parallelization=yes > > Results for 'Full recompute at 401-VPC scale (node times)' > > --- > > en_ts recompute Maximum (msec): 7 > > en_ts recompute Average (msec): 7.000000 > > en_tr recompute Maximum (msec): 0 > > en_tr recompute Average (msec): 0.000000 > > en_route recompute Maximum (msec): 147 > > en_route recompute Average (msec): 147.000000 > > en_port_binding recompute Maximum (msec): 121 > > en_port_binding recompute Average (msec): 121.000000 > > en_tunnel_key recompute Maximum (msec): 6 > > en_tunnel_key recompute Average (msec): 6.000000 > > > > Paulo Guilherme Silva (14): > > ic: Do not include config.h from headers. > > ic: Add missing license headers. > > northd: Read ic-vxlan_mode as a boolean value, not key presence. > > ic: Prepare *_run functions for engine nodes. > > ic: Split full recompute into per-subsystem engine nodes. > > ic: Add incremental handler for the en_az node. > > ic: Add the en_tunnel_key node. > > ic: Add incremental handler for the en_gateway node. > > ic: Add incremental handler for the en_ts node. > > ic: Add incremental handler for the en_tr node. > > ic: Add incremental handler for the en_port_binding node. > > ic: Add incremental handler for the en_route node. > > tests: Add ovn-ic incremental-processing basic scale test. > > ic: Add incremental handler for the en_service_mon node. > > > > NEWS | 13 + > > ic/automake.mk | 18 + > > ic/en-address-set.c | 56 + > > ic/en-address-set.h | 25 + > > ic/en-az.c | 127 ++ > > ic/en-az.h | 38 + > > ic/en-gateway.c | 413 ++++ > > ic/en-gateway.h | 29 + > > ic/en-ic.c | 9 +- > > ic/en-ic.h | 16 +- > > ic/en-port-binding.c | 1718 ++++++++++++++++ > > ic/en-port-binding.h | 53 + > > ic/en-route.c | 2772 ++++++++++++++++++++++++++ > > ic/en-route.h | 53 + > > ic/en-service-monitor.c | 552 ++++++ > > ic/en-service-monitor.h | 30 + > > ic/en-tr.c | 209 ++ > > ic/en-tr.h | 29 + > > ic/en-ts.c | 227 +++ > > ic/en-ts.h | 33 + > > ic/en-tunnel-key.c | 460 +++++ > > ic/en-tunnel-key.h | 60 + > > ic/inc-proc-ic.c | 279 ++- > > ic/inc-proc-ic.h | 23 +- > > ic/ovn-ic.c | 3896 ++++--------------------------------- > > ic/ovn-ic.h | 60 +- > > northd/en-global-config.c | 4 +- > > ovn-ic-nb.xml | 23 + > > tests/automake.mk | 3 +- > > tests/ovn-ic.at | 862 ++++++++ > > tests/ovn-macros.at | 32 + > > tests/ovn-northd.at | 18 + > > tests/perf-ovn-ic.at | 254 +++ > > tests/perf-testsuite.at | 1 + > > 34 files changed, 8834 insertions(+), 3561 deletions(-) > > create mode 100644 ic/en-address-set.c > > create mode 100644 ic/en-address-set.h > > create mode 100644 ic/en-az.c > > create mode 100644 ic/en-az.h > > create mode 100644 ic/en-gateway.c > > create mode 100644 ic/en-gateway.h > > create mode 100644 ic/en-port-binding.c > > create mode 100644 ic/en-port-binding.h > > create mode 100644 ic/en-route.c > > create mode 100644 ic/en-route.h > > create mode 100644 ic/en-service-monitor.c > > create mode 100644 ic/en-service-monitor.h > > create mode 100644 ic/en-tr.c > > create mode 100644 ic/en-tr.h > > create mode 100644 ic/en-ts.c > > create mode 100644 ic/en-ts.h > > create mode 100644 ic/en-tunnel-key.c > > create mode 100644 ic/en-tunnel-key.h > > create mode 100644 tests/perf-ovn-ic.at > > > > -- > > 2.34.1 > > > > > > -- > > > > > > > > > > _'Esta mensagem é direcionada apenas para os endereços constantes no > > cabeçalho inicial. Se você não está listado nos endereços constantes no > > cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa > > mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas > estão > > imediatamente anuladas e proibidas'._ > > > > > > * **'Apesar do Magazine Luiza tomar > > todas as precauções razoáveis para assegurar que nenhum vírus esteja > > presente nesse e-mail, a empresa não poderá aceitar a responsabilidade > por > > quaisquer perdas ou danos causados por esse e-mail ou por seus anexos'.* > > > > > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > -- _‘Esta mensagem é direcionada apenas para os endereços constantes no cabeçalho inicial. Se você não está listado nos endereços constantes no cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão imediatamente anuladas e proibidas’._ * **‘Apesar do Magazine Luiza tomar todas as precauções razoáveis para assegurar que nenhum vírus esteja presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por quaisquer perdas ou danos causados por esse e-mail ou por seus anexos’.* _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
