[ovs-dev] [PATCH monitor_cond V10] RFC OVN: Implementation of conditional monitoring usage
Mickey Spiegel
emspiege at us.ibm.com
Thu Jul 21 17:32:56 UTC 2016
-----Liran Schour/Haifa/IBM wrote: -----
>To: Mickey Spiegel/San Jose/IBM at IBMUS
>From: Liran Schour/Haifa/IBM
>Date: 07/21/2016 04:18AM
>Cc: Ben Pfaff <blp at ovn.org>, dev at openvswitch.org
>Subject: Re: [ovs-dev] [PATCH monitor_cond V10] RFC OVN:
>Implementation of conditional monitoring usage
>
>Mickey Spiegel/San Jose/IBM wrote on 20/07/2016 08:53:42 AM:
>
>> From: Mickey Spiegel/San Jose/IBM
>> To: Liran Schour/Haifa/IBM at IBMIL
>> Cc: Ben Pfaff <blp at ovn.org>, dev at openvswitch.org
>> Date: 20/07/2016 08:53 AM
>> Subject: Re: [ovs-dev] [PATCH monitor_cond V10] RFC OVN:
>> Implementation of conditional monitoring usage
>>
>> Comments inline as <Mickey>
>>
>> -----"dev" <dev-bounces at openvswitch.org> wrote: -----
>> To: Ben Pfaff <blp at ovn.org>
>> From: Liran Schour
>> Sent by: "dev"
>> Date: 07/19/2016 01:45AM
>> Cc: dev at openvswitch.org
>> Subject: [ovs-dev] [PATCH monitor_cond V10] RFC OVN: Implementation
>> of conditional monitoring usage
>
>> 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.
>> 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.
>>
>> <Mickey> Before getting into details, please confirm whether I have
>> a proper understanding how this works:
>> When a hypervisor first comes up, it gets no port bindings.
>> When a VIF comes up on the hypervisor, this will trigger filter_port
>> on that VIF, which causes the port binding for that VIF to come down
>> to the controller.
>> Upon receipt of that port binding, the controller will add the
>> datapath for the VIF's logical switch to local datapaths, which will
>> trigger filter_datapath.
>> This will cause all of the port bindings, MAC bindings, logical
>> flows, and multicast groups for the VIF's logical switch to come
>> down to the controller.
>> Following the patch ports from the VIF's logical switch, this will
>> trigger filter_port for all peer patch ports.
>> The port bindings for those peer patch ports will trigger
>> filter_datapath for all logical router datapaths connected to the
>> logical switch.
>> This will cause all of the port bindings, MAC bindings, logical
>> flows, and multicast groups for those datapaths to come down to the
>> controller.
>> If those datapaths have patch ports to additional datapaths,
>> following the patch ports, eventually all of the SB info for all
>> connected datapaths will come down to the controller.
>> Is this correct?
>>
>
>Yes. One small addition: to minimize the number of filters, the code
>will unfilter_lport when the lport is already included in a flittered
>datapath.
All of this is far from obvious. It would be good to document this in ovn-architecture.7.xml.
Mickey
More information about the dev
mailing list