summaryrefslogtreecommitdiff
path: root/ovsdb
diff options
context:
space:
mode:
authorandy zhou <azhou@ovn.org>2016-02-10 14:33:45 -0800
committerAndy Zhou <azhou@ovn.org>2016-02-10 17:32:34 -0800
commitacdd07648ac22d4492a2575dd07303acf4cc8e91 (patch)
tree685bff50e8868772a20f56064e3a370e57f4f414 /ovsdb
parent4080dd7f2360a13e697793c916f5e31594a703e1 (diff)
downloadopenvswitch-acdd07648ac22d4492a2575dd07303acf4cc8e91.tar.gz
ovsdb-server: Eliminating max session limit
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 <azhou@ovn.org> Acked-by: Han Zhou <zhouhan@gmail.com> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'ovsdb')
-rw-r--r--ovsdb/jsonrpc-server.c35
1 files changed, 14 insertions, 21 deletions
diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c
index ee2026eb7..0d23b77b2 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);
}