Ben Pfaff <b...@ovn.org> wrote on 14/08/2016 07:51:05 AM: > On Tue, Aug 02, 2016 at 04:38:00PM +0300, Liran Schour wrote: > > Conditional monitor of: Port_Binding, Logical_Flow, Multicast_Group > > MAC_Binding tables. As a result ovn-controller will be notified only about > > records belongs to a datapath that is being served by this hypervisor. > > > > Performance evaluation: > > OVN is the main candidate for conditional monitoring usage. It is clear that > > conditional monitoring reduces computation on the ovn-controller > (client) side > > due to the reduced size of flow tables and update messages. Performance > > evaluation shows up to 75% computation reduction on the ovn-controller side. > > However, performance evaluation shows also a reduction in > computation on the SB > > ovsdb-server side proportional to the degree that each logical network is > > spread over physical hosts in the DC. Evaluation shows that in a realistic > > scenarios there is a computation reduction also in the server side. > > > > Evaluation on simulated environment of 50 hosts and 1000 logical ports shows > > the following results (cycles #): > > > > LN spread over # hosts| master | patch | change > > ------------------------------------------------------------- > > 1 | 24597200127 | 24339235374 | 1.0% > > 6 | 23788521572 | 19145229352 | 19.5% > > 12 | 23886405758 | 17913143176 | 25.0% > > 18 | 25812686279 | 23675094540 | 8.2% > > 24 | 28414671499 | 24770202308 | 12.8% > > 30 | 31487218890 | 28397543436 | 9.8% > > 36 | 36116993930 | 34105388739 | 5.5% > > 42 | 37898342465 | 38647139083 | -1.9% > > 48 | 41637996229 | 41846616306 | -0.5% > > 50 | 41679995357 | 43455565977 | -4.2% > > > > TODO: > > - If performance evaluation will show the need, add a tenant-id > > (connectivity-id) column in the datapath_binding table to reducethe number > > of hops that is required to retrieve all datapaths. > > > > Signed-off-by: Liran Schour <lir...@il.ibm.com> > > Thanks for the patch. This seems very promising. I have a number of > style and comment suggestions to fold in, which I'm appending. Also > there's one serious bug fix: xmalloc(strlen(string)) does not allocate > enough memory to copy in 'string'! >
Will submit the patch with your changes. > I was on the verge of applying this but then I noticed what appears to > be a serious error. This code retains a pointer to "struct > sbrec_datapath_binding"s across calls to ovsdb_idl_run(). That's going > to cause a use-after-free error in a case where the Datapath_Binding > record gets deleted, causing the struct sbrec_datapath_binding to be > freed. Some other way to keep track of the Datapath_Binding record > will be necessary. > Yes, you are right. In case of a column which is a table reference, we can use instead only the uuid of that row and by that prevent the use-after-free error. I wll change ovsdb-idlc.in to generate such API and will use it on filter.c. Will submit the fixed patch soon. Thanks for the review. - Liran _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev