This patch set implements two ideas improve ovsdb connection scaling:
* Allow multiple jsonrpc connection to share a single ovsdb monitor, thus
maintaining a single set of changes.
* With in the same monitor, cache the json object generated for an update.
If the same update is requested by another jsonrpc connection, the
cached json object can be used, avoid regenerating it from scratch.
---
I don't yet have any useful data on speed improvements from both changes.
The plan is to to collect them and report back in the next few days.
If we don't want to apply them without the performance data, then
please consider this posting as RFC.
Andy Zhou (18):
ovsdb: refactoring jsonrpc-server.c
ovsdb: make setting mt->select into its own functions
ovsdb: refactor ovsdb_jsonrpc_parse_monitor_request
ovsdb: refactor ovsdb_monitor_add_column()
ovsdb: refactoring ovsdb_jsonrpc_monitor_compose_table_update()
ovsdb: refactoring ovsdb_jsonrpc_monitor_needs_flush
ovsdb: rename ovsdb_jsonrpc_monitor_get_initial()
ovsdb: refactoring ovsdb_monitor_destroy()
ovsdb: Split out monitor backend functions to ovsdb-monitor.c/h
ovsdb: refactoring ovsdb_monitor_get_initial
ovsdb: ovsdb-monitor stores jsonrpc-monitor in a linked-list
ovsdb: add transaction ids
ovsdb: rename jsonrpc_monitor_compose_table_update()
ovsdb: add ovsdb_monitor_changes
ovsdb: allow a list of 'ovsdb_monitor_changes' in each ovsdb monitor
table
ovsdb: refactor ovsdb_monitor_create()
ovsdb: allow multiple jsonrpc monitors to share a single ovsdb monitor
ovsdb: add json cache
ovsdb/automake.mk | 2 +
ovsdb/jsonrpc-server.c | 556 ++++----------------------
ovsdb/jsonrpc-server.h | 3 +
ovsdb/ovsdb-monitor.c | 1024 ++++++++++++++++++++++++++++++++++++++++++++++++
ovsdb/ovsdb-monitor.h | 71 ++++
5 files changed, 1167 insertions(+), 489 deletions(-)
create mode 100644 ovsdb/ovsdb-monitor.c
create mode 100644 ovsdb/ovsdb-monitor.h
--
1.9.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev