[ovs-dev] [PATCH ovn] ovs: Bump submodule version to latest ovsdb-cs changes.

Dmitry Yusupov dyusupov at nvidia.com
Fri Mar 12 17:26:07 UTC 2021

> On Thu, Mar 11, 2021 at 6:11 PM Ben Pfaff <mailto:blp at ovn.org> wrote:
> >
> > On Thu, Mar 11, 2021 at 08:07:58PM -0500, Mark Michelson wrote:
> > > On 3/11/21 5:58 PM, Ilya Maximets wrote:
> > > > I'd say that eventually OVN should become less feature hungry
> > > > or less dependent from OVS changes.  Then we should consider
> > > > to use only stable released OVS as a build dependency and
> > > > actually wait for the next major OVS release if some new features
> > > > required from it.  But right now we can't afford that.
> > >
> > > I'd say the vast majority of the time these days, the OVS changes OVN
> > > depends on are specifically OVSDB changes. One possible idea is to separate
> > > OVSDB from OVS and semantically version the OVSDB API. Then OVS and OVN
> > > would be consumers of the same common project.
> > >
> > > You'd still have the potential for needing to update the OVS submodule to
> > > some non-released version. But hopefully the frequency of such updates would
> > > be reduced. And if the frequency is reduced enough, it probably wouldn't be
> > > outside the realm of reason to request backports of bug fixes and
> > > point-releases of OVS whenever OVN requires a submodule update.
> >
> > I'm adding Dmitry Yusupov to this thread because he expressed some
> > interest in separating OVSDB from OVS in the latest OVS Orbit episode
> > (https://ovsorbit.org/#e72).
> I think this is not only a dependency problem of compiling, but also of runtime,
> if we want to continue supporting debian, because in debian packages dynamic linked
> library is used instead of statically linked. If I understand correctly, the submodule
> approach solves the compile time dependency but not runtime, for debian.
> So the only way out eventually might be separating OVSDB from OVS.
> (Please correct me if I am wrong)

Semantic versioning of OVSDB API would surely enable better compatibility between the projects.
As of right now, static linking in OVN RPM packages for instance can be easily disabled.
My tests showing that it can be beneficial in environments where we can  have controlled upgrades.
But without versioned OVSDB API it is just too dangerous to have that as a default.

As I also expressed in ovsorbit podcast, separation of OVSDB from OVS could potentially help us expand user base beyond just OVS use cases.
I've built OVSDB-KV prototype in Go and did some comparison to ETCD (see slides that Ben listed in podcast reference #e72) and found quite significant performance gains, granted after few changes to OVSDB that I proposed.

More information about the dev mailing list