On Wed, Feb 10, 2016 at 2:33 PM, Andy Zhou <[email protected]> wrote:
>
> This patch removes limits on number of concurrent sessions
> allowed by ovsdb-server. Historically, it was not an design
> goal for OVSDB server to support very high number of sessions.
> The imposed limit reflects those design choices.
>
> Work is now underway to improve OVSDB scalability since supporting
> large of number of sessions is important for OVN, Removing
> this limit makes scalability testing possible.
>
> Signed-off-by: Andy Zhou <[email protected]>
> ---
>  NEWS                   |  3 +++
>  ovsdb/jsonrpc-server.c | 35 ++++++++++++++---------------------
>  2 files changed, 17 insertions(+), 21 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index 8c9f310..18fca10 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -14,6 +14,9 @@ Post-v2.5.0
>       bitrot.
>     - ovs-appctl:
>       * New "vlog/close" command.
> +   - ovsdb-server:
> +     * Remove max number of sessions limit, to enable connection scaling
> +       testing.
>
>
>  v2.5.0 - xx xxx xxxx
> diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c
> index ee2026e..0d23b77 100644
> --- a/ovsdb/jsonrpc-server.c
> +++ b/ovsdb/jsonrpc-server.c
> @@ -101,7 +101,7 @@ static struct json
*ovsdb_jsonrpc_monitor_compose_update(
>
>  struct ovsdb_jsonrpc_server {
>      struct ovsdb_server up;
> -    unsigned int n_sessions, max_sessions;
> +    unsigned int n_sessions;
>      struct shash remotes;      /* Contains "struct ovsdb_jsonrpc_remote
*"s. */
>  };
>
> @@ -130,7 +130,6 @@ ovsdb_jsonrpc_server_create(void)
>  {
>      struct ovsdb_jsonrpc_server *server = xzalloc(sizeof *server);
>      ovsdb_server_init(&server->up);
> -    server->max_sessions = 330;   /* Random limit. */
>      shash_init(&server->remotes);
>      return server;
>  }
> @@ -324,25 +323,19 @@ ovsdb_jsonrpc_server_run(struct
ovsdb_jsonrpc_server *svr)
>          struct ovsdb_jsonrpc_remote *remote = node->data;
>
>          if (remote->listener) {
> -            if (svr->n_sessions < svr->max_sessions) {
> -                struct stream *stream;
> -                int error;
> -
> -                error = pstream_accept(remote->listener, &stream);
> -                if (!error) {
> -                    struct jsonrpc_session *js;
> -                    js =
jsonrpc_session_open_unreliably(jsonrpc_open(stream),
> -                                                         remote->dscp);
> -                    ovsdb_jsonrpc_session_create(remote, js);
> -                } else if (error != EAGAIN) {
> -                    VLOG_WARN_RL(&rl, "%s: accept failed: %s",
> -                                 pstream_get_name(remote->listener),
> -                                 ovs_strerror(error));
> -                }
> -            } else {
> -                VLOG_WARN_RL(&rl, "%s: connection exceeded maximum (%d)",
> +            struct stream *stream;
> +            int error;
> +
> +            error = pstream_accept(remote->listener, &stream);
> +            if (!error) {
> +                struct jsonrpc_session *js;
> +                js =
jsonrpc_session_open_unreliably(jsonrpc_open(stream),
> +                                                     remote->dscp);
> +                ovsdb_jsonrpc_session_create(remote, js);
> +            } else if (error != EAGAIN) {
> +                VLOG_WARN_RL(&rl, "%s: accept failed: %s",
>                               pstream_get_name(remote->listener),
> -                             svr->max_sessions);
> +                             ovs_strerror(error));
>              }
>          }
>
> @@ -358,7 +351,7 @@ ovsdb_jsonrpc_server_wait(struct ovsdb_jsonrpc_server
*svr)
>      SHASH_FOR_EACH (node, &svr->remotes) {
>          struct ovsdb_jsonrpc_remote *remote = node->data;
>
> -        if (remote->listener && svr->n_sessions < svr->max_sessions) {
> +        if (remote->listener) {
>              pstream_wait(remote->listener);
>          }
>
> --
> 1.9.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev


Acked-by: Han Zhou <[email protected]>

--
Best regards,
Han
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to