[ovs-dev] [PATCH ovn v2] controller: Avoid unnecessary load balancer flow processing.

Han Zhou zhouhan at gmail.com
Fri Jul 16 01:05:27 UTC 2021


On Thu, Jul 15, 2021 at 5:03 PM Ben Pfaff <blp at ovn.org> wrote:

> On Mon, Jul 12, 2021 at 10:08:10AM +0200, Dumitru Ceara wrote:
> > Whenever a Load_Balancer is updated, e.g., a VIP is added, the following
> > sequence of events happens:
> >
> > 1. The Southbound Load_Balancer record is updated.
> > 2. The Southbound Datapath_Binding records on which the Load_Balancer is
> >    applied are updated.
> > 3. Southbound ovsdb-server sends updates about the Load_Balancer and
> >    Datapath_Binding records to ovn-controller.
> > 4. The IDL layer in ovn-controller processes the updates at #3, but
> >    because of the SB schema references between tables [0] all logical
> >    flows referencing the updated Datapath_Binding are marked as
> >    "updated".  The same is true for Logical_DP_Group records
> >    referencing the Datapath_Binding, and also for all logical flows
> >    pointing to the new "updated" datapath groups.
> > 5. ovn-controller ends up recomputing (removing/readding) all flows for
> >    all these tracked updates.
>
> This is kind of a weird change from my perspective.  It allows for
> broken referential integrity in the database to work around a
> performance bug in the IDL.


Yes, it did look weird and there were detailed discussions on it in the v1
reviews. Some options that require much bigger changes were discussed for
longer term, unless ddlog is used.


> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list