Mercurial > dovecot > core-2.2
changeset 22662:7fe2a998bc1f
director: Add director_max_parallel_moves/kicks settings
The director_max_parallel_moves setting controls the default limit, which
can still be increased by explicitly using the doveadm director flush
--max-parallel" parameter.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 07 Nov 2017 17:36:05 +0200 |
parents | 34765a426c56 |
children | 5524719c299a |
files | src/director/director-settings.c src/director/director-settings.h src/director/doveadm-connection.c |
diffstat | 3 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-settings.c Mon Nov 06 10:36:07 2017 +0200 +++ b/src/director/director-settings.c Tue Nov 07 17:36:05 2017 +0200 @@ -76,6 +76,8 @@ DEF(SET_TIME, director_user_kick_delay), DEF(SET_IN_PORT, director_doveadm_port), DEF(SET_BOOL, director_consistent_hashing), + DEF(SET_TIME, director_max_parallel_moves), + DEF(SET_TIME, director_max_parallel_kicks), DEF(SET_SIZE, director_output_buffer_size), SETTING_DEFINE_LIST_END @@ -91,6 +93,8 @@ .director_user_expire = 60*15, .director_user_kick_delay = 2, .director_doveadm_port = 0, + .director_max_parallel_moves = 100, + .director_max_parallel_kicks = 100, .director_output_buffer_size = 10 * 1024 * 1024, };
--- a/src/director/director-settings.h Mon Nov 06 10:36:07 2017 +0200 +++ b/src/director/director-settings.h Tue Nov 07 17:36:05 2017 +0200 @@ -15,6 +15,8 @@ unsigned int director_user_kick_delay; in_port_t director_doveadm_port; bool director_consistent_hashing; + unsigned int director_max_parallel_moves; + unsigned int director_max_parallel_kicks; uoff_t director_output_buffer_size; };
--- a/src/director/doveadm-connection.c Mon Nov 06 10:36:07 2017 +0200 +++ b/src/director/doveadm-connection.c Tue Nov 07 17:36:05 2017 +0200 @@ -25,8 +25,6 @@ #define DOVEADM_HANDSHAKE "VERSION\tdirector-doveadm\t1\t0\n" #define MAX_VALID_VHOST_COUNT 1000 -#define DEFAULT_MAX_MOVING_USERS 100 -#define DEFAULT_MAX_KICKING_USERS 100 #define DOVEADM_CONNECTION_RING_SYNC_TIMEOUT_MSECS (30*1000) @@ -602,7 +600,8 @@ struct ip_addr ip; struct mail_host *const *hosts; unsigned int i = 0, count; - unsigned int max_moving_users = DEFAULT_MAX_MOVING_USERS; + unsigned int max_moving_users = + conn->dir->set->director_max_parallel_moves; if (args[0] != NULL && args[1] != NULL && (str_to_uint(args[1], &max_moving_users) < 0 || @@ -790,7 +789,8 @@ static bool doveadm_cmd_user_kick_run(struct director_kick_cmd *cmd) { - if (cmd->dir->users_kicking_count >= DEFAULT_MAX_KICKING_USERS) + if (cmd->dir->users_kicking_count >= + cmd->dir->set->director_max_parallel_kicks) return FALSE; if (cmd->alt)