"dev" <[email protected]> wrote on 06/13/2016 07:19:25 AM:
> From: Liran Schour <[email protected]> > To: [email protected] > Cc: [email protected] > Date: 06/13/2016 08:29 AM > Subject: [ovs-dev] [PATCH monitor_cond V7 00/10] Conditional monitor > implementation > Sent by: "dev" <[email protected]> > > 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 > [email protected] > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
