[ovs-dev] [PATCH monitor_cond V7 00/10] Conditional monitor implementation
Hui Kang
kangh at us.ibm.com
Mon Jun 13 16:58:41 UTC 2016
"dev" <dev-bounces at openvswitch.org> wrote on 06/13/2016 07:19:25 AM:
> From: Liran Schour <lirans at il.ibm.com>
> To: blp at ovn.org
> Cc: dev at openvswitch.com
> Date: 06/13/2016 08:29 AM
> Subject: [ovs-dev] [PATCH monitor_cond V7 00/10] Conditional monitor
> implementation
> Sent by: "dev" <dev-bounces at openvswitch.org>
>
> This patch series implements conditional monitoring by introducing an
OVSDB
> RFC extension with 2 new JSON-RPC methods: "monitor_cond" and
> "monitor_cond_change". Specification of this extension is defined in the
> ovsdb-server (1) man page.
> Monitor2 is now merged into monitor_cond. A monitor_cond session
> with an empty
> condition, will behave exactly like monitor2 and will get update2
> notifications
> on all rows.
>
> This patch series is also available on:
https://github.com/liranschour/ovs.git
> branch monitor_cond_ovn.
Hi, Liran,
I am interested in cloning this patch from github. However, in your git
repo, I
see several branches name with monitor_cond_ovn, i.e., monitor_cond_ovn,
monitor_cond_ovn_v7_ovn, monitor_cond_ovn_dev....
Which one shall I use? Thanks.
- Hui
>
> OVN:
> Last patch in this series is a RFC for OVN usage of conditional
monitoring.
>
> 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. 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 on simulated environment of 50 hosts and 1000 logical ports
shows
> the following results (cycles #):
>
> LN spread over # hosts| master | patch | change
> -------------------------------------------------------------
> 1 | 58855158082 | 38175941755 | 35.1%
> 3 | 54816462604 | 40255584120 | 26.5%
> 6 | 52972265506 | 39481653891 | 25.4%
> 12 | 57036827284 | 42008285519 | 26.3%
> 18 | 61900476558 | 45903107035 | 25.8%
> 24 | 64281399690 | 55617752599 | 13.4%
> 30 | 66905128558 | 61835913623 | 7.5%
> 42 | 76763742331 | 70522724721 | 8.1%
> 50 | 85372146321 | 80130285454 | 6.1%
>
> Changes V6 --> V7:
> ------------------
> * Change ovsdb-idl API to include only add and remove clause from
condition.
> * IDL maintain and track conditions. Send monitor_cond_change on
condition
> change.
> * Due to IDL API change, OVN does not maintain and track condition.
> * Report column duplication on ovsdv_monitor_add_column().
> * Split added documentation according to patches.
> * Add to testing for monitor_cond_change method in ovsdb-client via
unixctl
> command.
> * An update, if any, as a result of a condition change, will be sent to
the
> client before the reply to the "monitor_cond_update" request.
> * Minor fixes due to review.
>
> Liran Schour (10):
> ovsdb: create column index mapping between ovsdb row to monitor row
> ovsdb: add conditions utilities to support monitor_cond
> ovsdb: allow unmonitored columns in condition evaluation
> ovsdb: generate update notifications for monitor_cond session
> ovsdb: enable jsonrpc-server to service "monitor_cond_change" request
> ovsdb-client: support monitor-cond method
> lib: add to ovsdb-idl monitor_id
> python: move Python idl to work with monitor_cond
> lib: add monitor_cond_change API to C IDL lib
> RFC OVN: Quick implementation of conditional monitoring
>
> NEWS | 3 +-
> lib/automake.mk | 2 +
> lib/ovsdb-condition.c | 47 ++++
> lib/ovsdb-condition.h | 45 +++
> lib/ovsdb-idl-provider.h | 2 +
> lib/ovsdb-idl.c | 239 ++++++++++++++--
> lib/ovsdb-idl.h | 30 ++
> ovn/controller/binding.c | 108 +++++++-
> ovn/controller/binding.h | 4 +-
> ovn/controller/lport.c | 123 ++++++++-
> ovn/controller/lport.h | 10 +-
> ovn/controller/ovn-controller.c | 23 +-
> ovsdb/condition.c | 188 ++++++++++++-
> ovsdb/condition.h | 57 ++--
> ovsdb/jsonrpc-server.c | 233 +++++++++++++---
> ovsdb/jsonrpc-server.h | 2 +-
> ovsdb/monitor.c | 592 +++++++++++++++++++++++++++++
> +++++------
> ovsdb/monitor.h | 46 +++-
> ovsdb/ovsdb-client.1.in | 37 ++-
> ovsdb/ovsdb-client.c | 98 +++++--
> ovsdb/ovsdb-idlc.in | 364 +++++++++++++++++++++++-
> ovsdb/ovsdb-server.1.in | 221 +++++++++++++--
> ovsdb/ovsdb-server.c | 20 +-
> ovsdb/query.c | 6 +-
> python/ovs/db/data.py | 16 +-
> python/ovs/db/idl.py | 190 +++++++++++--
> tests/ovn-controller.at | 3 +
> tests/ovs-vswitchd.at | 8 +-
> tests/ovsdb-condition.at | 41 +++
> tests/ovsdb-idl.at | 243 ++++++++++++++++-
> tests/ovsdb-monitor.at | 251 +++++++++++++++++
> tests/test-ovsdb.c | 292 +++++++++++++++++++-
> tests/test-ovsdb.py | 34 +++
> 33 files changed, 3268 insertions(+), 310 deletions(-)
> create mode 100644 lib/ovsdb-condition.c
> create mode 100644 lib/ovsdb-condition.h
>
> --
> 2.1.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list