Introduce a new 'poll group' feature to improve the efficiency of poll
loop in dealing with large number of connections, and its first application
to improve ovsdb-server to scale up connections.

Patch 6/6 commit log as some performance numbers. They are copied here
for reference.

   For ovsdb-server to maintain 1000 idle connections over TCP with the
   default 5s probe interval, the CPU load droped from 48% to 14%.

Andy Zhou (6):
  lib: Introduce poll group provider class
  lib: Add epoll poll group implementation for the Linux platform
  lib: Update stream class to support poll group.
  lib: Add poll group support in jsonrpc library.
  lib: add poll_block_waken_by_timer
  ovsdb: Change jsonrpc server to make use of poll group

 NEWS                      |   5 +-
 lib/automake.mk           |   4 +
 lib/jsonrpc.c             |  74 ++++++++++-
 lib/jsonrpc.h             |   7 +
 lib/poll-group-epoll.c    | 321 ++++++++++++++++++++++++++++++++++++++++++++++
 lib/poll-group-provider.h | 156 ++++++++++++++++++++++
 lib/poll-group.c          | 224 ++++++++++++++++++++++++++++++++
 lib/poll-group.h          |  51 ++++++++
 lib/poll-loop.c           |  11 ++
 lib/poll-loop.h           |   3 +
 lib/stream-fd.c           |  32 +++++
 lib/stream-provider.h     |  17 +++
 lib/stream-ssl.c          |  40 +++++-
 lib/stream-tcp.c          |   3 +
 lib/stream-unix.c         |   3 +
 lib/stream.c              |  83 +++++++++++-
 lib/stream.h              |   5 +
 ovsdb/jsonrpc-server.c    |  75 ++++++++++-
 ovsdb/jsonrpc-server.h    |   2 +-
 ovsdb/ovsdb-server.c      |  43 +++++--
 tests/ovsdb-server.at     |  11 ++
 21 files changed, 1145 insertions(+), 25 deletions(-)
 create mode 100644 lib/poll-group-epoll.c
 create mode 100644 lib/poll-group-provider.h
 create mode 100644 lib/poll-group.c
 create mode 100644 lib/poll-group.h

-- 
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to