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

Reply via email to