[ovs-dev] [PATCH] ovn: Avoid nb_cfg update notification flooding
Han Zhou
zhouhan at gmail.com
Sun Mar 18 04:59:02 UTC 2018
On Fri, Mar 16, 2018 at 4:24 PM, Han Zhou <zhouhan at gmail.com> wrote:
>
>
>
> On Fri, Mar 16, 2018 at 3:36 PM, Ben Pfaff <blp at ovn.org> wrote:
> >
> > On Fri, Mar 16, 2018 at 02:31:49PM -0700, Han Zhou wrote:
> > > nb_cfg as a mechanism to "ping" OVN control plane is very useful
> > > in many ways. However, the current implementation will trigger
> > > update notifications flooding in the whole control plane. Each
> > > HV updates to SB the nb_cfg number and all these updates are
> > > notified to all the other HVs, which is O(n^2). Although updates
> > > are batched in fewers notifications than n^2, it still generates
> > > significant load on SB DB and also on ovn-controllers.
> > >
> > > To solve this problem and make the mechanism more useful in large
> > > scale producation deployment, this patch separates the per HV
> > > nb_cfg data in SB from the Chassis table to a separate table, so
> > > that each HV can conditionally monitor and get updates only for
> > > its own record.
> > >
> > > Signed-off-by: Han Zhou <hzhou8 at ebay.com>
> >
> > By removing columns this will break upgrades. Do you have another idea?
>
> Can we just keep the old nb_cfg column in the schema but don't use it,
just for ovsdb upgrade to work?
Hi Ben,
Here is the test result in ovn-scale-test environment, with 1K sandbox HVs
and 10K ports created, and then do the sync test when the system is idle,
with command: time ovn-nbctl --wait=hv sync
Original result:
real 4m52.926s
user 0m0.328s
sys 0m0.004s
With this patch:
real 0m11.405s
user 0m0.316s
sys 0m0.016s
As the result is very promising, I would like to submit v2 to keep the old
column for upgrading purpose. Do you have any other idea?
Thanks,
Han
More information about the dev
mailing list