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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to