On Wed, Aug 3, 2016 at 11:39 AM, Kyle Mestery <mest...@mestery.com> wrote:
> 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. OK. I suppose we can't really discuss an exception until the code is ready, anyway. -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev