On Wed, Aug 3, 2016 at 10:30 AM, Ryan Moats <rmo...@us.ibm.com> wrote: > > Russell Bryant <russ...@ovn.org> wrote on 08/03/2016 10:11:57 AM: > >> From: Russell Bryant <russ...@ovn.org> >> To: Ryan Moats/Omaha/IBM@IBMUS >> Cc: Ben Pfaff <b...@ovn.org>, ovs-dev <dev@openvswitch.org> >> Date: 08/03/2016 10:12 AM >> Subject: Re: [ovs-dev] Let's talk the NB DB IDL Part I - things >> we've see scaling the networking-ovn to NB DB connection >> >> On Wed, Aug 3, 2016 at 9:28 AM, Ryan Moats <rmo...@us.ibm.com> wrote: >> >> >> Ben Pfaff <b...@ovn.org> wrote on 08/03/2016 12:27:48 AM: >> >> > From: Ben Pfaff <b...@ovn.org> >> > To: Ryan Moats/Omaha/IBM@IBMUS >> > Cc: ovs-dev <dev@openvswitch.org> >> > Date: 08/03/2016 12:28 AM >> > Subject: Re: [ovs-dev] Let's talk the NB DB IDL Part I - things >> > we've see scaling the networking-ovn to NB DB connection >> > >> > On Wed, Aug 03, 2016 at 12:06:47AM -0500, Ryan Moats wrote: >> > > Ben Pfaff <b...@ovn.org> wrote on 08/02/2016 11:52:23 PM: >> > > >> > > > From: Ben Pfaff <b...@ovn.org> >> > > > To: Ryan Moats/Omaha/IBM@IBMUS >> > > > Cc: ovs-dev <dev@openvswitch.org> >> > > > Date: 08/02/2016 11:52 PM >> > > > Subject: Re: [ovs-dev] Let's talk the NB DB IDL Part I - things >> > > > we've see scaling the networking-ovn to NB DB connection >> > > > >> > > > On Tue, Aug 02, 2016 at 11:45:07PM -0500, Ryan Moats wrote: >> > > > > "dev" <dev-boun...@openvswitch.org> wrote on 08/02/2016 10:56:07 >> PM: >> > > > > > Ben Pfaff <b...@ovn.org> wrote on 08/02/2016 10:14:46 PM: >> > > > > > > Presumably this means that networking-ovn is calling "verify" >> on >> > > the >> > > > > > > column in question. Probably, networking-ovn should use the >> > > partial >> > > > > map >> > > > > > > update functionality introduced in commit f199df26e8e28 >> "ovsdb-idl: >> > > Add >> > > > > > > partial map updates functionality." I don't know whether > it's >> in >> > > the >> > > > > > > Python IDL yet. >> > > > > > >> > > > > > Indeed they are and thanks for the pointer to the commit - I'll >> dig >> > > > > > into it tomorrow and see if that code is reflected in the > Python >> > > > > > IDL via that or another commit. If it is, great. If not, > there >> > > > > > will likely also be a patch adding it so that we can move > along. >> > > > > >> > > > > Hmm, maybe I'm misreading something, but I don't thing that's > going >> > > > > to work without some additional modifications - the partial map >> commit >> > > > > currently codes for columns that have a particular value type >> defined >> > > > > by the schema. The problem we are seeing is with the ports and >> acls >> > > > > columns of the logical switch table, which are lists of strong >> > > > > references. Since they don't have a defined value, the generated >> IDL >> > > > > code doesn't provide hooks for using partial map operations and > we >> > > default >> > > > > back to update/verify with the given above results. >> > > > > >> > > > > Now, I think this an oversight, because I can argue that since >> these >> > > > > are strong references, I should be able to use partial maps to >> update >> > > > > them as keys with a null value. Does this make sense or am I >> breaking >> > > > > something if I look at going this route? >> > > > >> > > > If they're implemented as partial map operations only, then we > should >> > > > extend them to support partial set operations too--the same >> principles >> > > > apply. >> > > >> > > I'm not sure I parsed this correctly, but I think we are saying the >> same >> > > thing: change the IDL for columns that contain sets of strong >> references >> > > from using update/verify to using mutate for partial set operations > (I >> > > realized after hitting the send button that I should have said > partial >> > > sets instead of partial maps...) >> > >> > Yes, I think we're saying the same thing. >> > > >> Cool, I'll see how far I can get (not sure where my previous message > saying >> this went...) >> >> From the perspective of the branch point, we'd really like to see the >> following make the 2.6 release to allow for easier integration with >> upstream >> OpenStack testing: >> >> - partial sets for the C IDL >> - partial maps for the Python IDL >> - partial sets for the Python IDL >> >> In fact, I'd sorta like to see them all backported to 2.5, but I doubt >> that's >> possible. >> >> (...off to craft patch sets...) >> >> but based on: >> >> http://openvswitch.org/pipermail/dev/2016-July/076855.html >> >> it seems too late to try to get new things like this in for 2.6. > > I realize that I'm asking for an exception - at the time I wrote that > we didn't realize how much of an issue using verify/update semantics was > going to be when scaling (mea culpa). > > If the exception isn't granted, so be it - we'll carry it locally until > the 2.6.90 branch opens... >
I'll jump in here and say that this issue has become a huge scaling issue for us internally, and anyone else who wants to scale OVN. I'd also like to request a feature exception for this. I realize we have a similar issue to fight on the OpenStack side, but without these changes, we'll be severely limiting the scalability of OVN. And this is even without OpenStack, as Ryan and I suspect this issue is the cause of the "8k ports on 400 chassis is really slow as it grows" test with ovn-scale-test. > > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev