aboutsummaryrefslogtreecommitdiffstats
path: root/src/ranch_conns_sup_sup.erl
AgeCommit message (Collapse)Author
2021-09-08Update copyright yearsLoïc Hoguin
2021-09-08Update copyrightJan Uhlig
2020-09-10Metric counters for connection accepts and terminatesMaria-12648430
2020-06-25Update copyrightjuhlig
2019-07-02Set transport options without suspendjuhlig
Lift the restriction that a listener must be suspended before transport options can be changed. * Changes to the `max_connections`, `handshake_timeout` and `shutdown` options will take effect immediately. * Changes to the `num_acceptors`, `num_listen_sockets` and `socket_opts` options will take effect when a listener is suspended and resumed, or when the acceptors supervisor restarts. * Changes to the `num_conns_sups` and `connection_type` options will only take effect when the connections super-supervisor restarts. * Changes to the `logger` option will never take effect, unless a listener is stopped and started with fresh transport options. The fetching and handing down of transport options changes with this commit, to ensure consistency between the individual components in the hierarchy. * The `num_acceptors` option is handed down from the listener supervisor to the acceptors supervisor in the child spec, while the `num_listen_sockets` and `socket_opts` options are read inside the acceptors supervisor itself. This way, the `num_acceptors` option will only take effect when the listener supervisor restarts, whereas the other two options will take effect when acceptors supervisor restarts. This commit moves the fetching of the `num_acceptors` option into the acceptors supervisor as well. * The `logger` option is read in multiple places throughout the hierarchy. This way it may happen that processes that suffered a crash and restart may use a different logger than other processes that did not. This commit reads the `logger` from the transport options given to the listener supervisor start function, and hands it down from there. * The `connection_type` option is read individually by each connection supervisor. This way, a restart of an individual connection supervisor may cause them to use a different connection type than the others. This commit reads the transport options in the connections super-supervisor, and hands them down to the individual connections supervisors. * The `num_conns_sups` is handed down from the listener supervisor to the connections super-supervisor. This way, a change to this option will only take effect when the listener supervisor restarts. This commit moves the fetching of this option inside the connections super-supervisor. This change is merely for structural consistency, it is not necessary for operational consistency.
2019-07-01Add missing specsjuhlig
2019-06-14Adaptive restart intensity for acceptor and connection supervisorsjuhlig
2019-05-13Change supervisor child specs to mapsjuhlig
2019-05-08Add the num_conns_sups optionjuhlig
This new option allows configuring the number of connection supervisors. The old behavior can be obtained by setting this value to 1. A value larger than num_acceptors will result in some connection supervisors not being used as the acceptors currently only use one connection supervisor.
2019-05-06Create one ranch_conns_sup per num_acceptorjuhlig
This gets rid of a bottleneck that occurs when many connections are handled by a single supervisor. The bigger issue occurred when many connections were dropped at once and the supervisor couldn't keep up.