mail_index_set_lock_method(box->index,
box->storage->set->parsed_lock_method,
mail_storage_get_lock_timeout(box->storage, UINT_MAX));
+
+ const struct mail_storage_settings *set = box->storage->set;
+ struct mail_index_optimization_settings optimization_set = {
+ .index = {
+ .rewrite_min_log_bytes = set->mail_index_rewrite_min_log_bytes,
+ .rewrite_max_log_bytes = set->mail_index_rewrite_max_log_bytes,
+ },
+ .log = {
+ .min_size = set->mail_index_log_rotate_min_size,
+ .max_size = set->mail_index_log_rotate_max_size,
+ .min_age_secs = set->mail_index_log_rotate_min_age,
+ .log2_max_age_secs = set->mail_index_log2_max_age,
+ },
+ .cache = {
+ .unaccessed_field_drop_secs = set->mail_cache_unaccessed_field_drop,
+ .record_max_size = set->mail_cache_record_max_size,
+ .compress_min_size = set->mail_cache_compress_min_size,
+ .compress_delete_percentage = set->mail_cache_compress_delete_percentage,
+ .compress_continued_percentage = set->mail_cache_compress_continued_percentage,
+ .compress_header_continue_count = set->mail_cache_compress_header_continue_count,
+ },
+ };
+ mail_index_set_optimization_settings(box->index, &optimization_set);
return 0;
}
DEF(SET_STR, mail_server_comment),
DEF(SET_STR, mail_server_admin),
DEF(SET_UINT, mail_cache_min_mail_count),
+ DEF(SET_TIME, mail_cache_unaccessed_field_drop),
+ DEF(SET_SIZE, mail_cache_record_max_size),
+ DEF(SET_SIZE, mail_cache_compress_min_size),
+ DEF(SET_UINT, mail_cache_compress_delete_percentage),
+ DEF(SET_UINT, mail_cache_compress_continued_percentage),
+ DEF(SET_UINT, mail_cache_compress_header_continue_count),
+ DEF(SET_SIZE, mail_index_rewrite_min_log_bytes),
+ DEF(SET_SIZE, mail_index_rewrite_max_log_bytes),
+ DEF(SET_SIZE, mail_index_log_rotate_min_size),
+ DEF(SET_SIZE, mail_index_log_rotate_max_size),
+ DEF(SET_TIME, mail_index_log_rotate_min_age),
+ DEF(SET_TIME, mail_index_log2_max_age),
DEF(SET_TIME, mailbox_idle_check_interval),
DEF(SET_UINT, mail_max_keyword_length),
DEF(SET_TIME, mail_max_lock_timeout),
.mail_server_comment = "",
.mail_server_admin = "",
.mail_cache_min_mail_count = 0,
+ .mail_cache_unaccessed_field_drop = 60*60*24*30,
+ .mail_cache_record_max_size = 64 * 1024,
+ .mail_cache_compress_min_size = 32 * 1024,
+ .mail_cache_compress_delete_percentage = 20,
+ .mail_cache_compress_continued_percentage = 200,
+ .mail_cache_compress_header_continue_count = 4,
+ .mail_index_rewrite_min_log_bytes = 8 * 1024,
+ .mail_index_rewrite_max_log_bytes = 128 * 1024,
+ .mail_index_log_rotate_min_size = 32 * 1024,
+ .mail_index_log_rotate_max_size = 1024 * 1024,
+ .mail_index_log_rotate_min_age = 5 * 60,
+ .mail_index_log2_max_age = 3600 * 24 * 2,
.mailbox_idle_check_interval = 30,
.mail_max_keyword_length = 50,
.mail_max_lock_timeout = 0,
return FALSE;
}
+ if (set->mail_cache_compress_delete_percentage > 100) {
+ *error_r = "mail_cache_compress_delete_percentage can't be over 100";
+ return FALSE;
+ }
+
uidl_format_ok = FALSE;
for (p = set->pop3_uidl_format; *p != '\0'; p++) {
if (p[0] != '%' || p[1] == '\0')
const char *mail_server_comment;
const char *mail_server_admin;
unsigned int mail_cache_min_mail_count;
+ unsigned int mail_cache_unaccessed_field_drop;
+ uoff_t mail_cache_record_max_size;
+ uoff_t mail_cache_compress_min_size;
+ unsigned int mail_cache_compress_delete_percentage;
+ unsigned int mail_cache_compress_continued_percentage;
+ unsigned int mail_cache_compress_header_continue_count;
+ uoff_t mail_index_rewrite_min_log_bytes;
+ uoff_t mail_index_rewrite_max_log_bytes;
+ uoff_t mail_index_log_rotate_min_size;
+ uoff_t mail_index_log_rotate_max_size;
+ unsigned int mail_index_log_rotate_min_age;
+ unsigned int mail_index_log2_max_age;
unsigned int mailbox_idle_check_interval;
unsigned int mail_max_keyword_length;
unsigned int mail_max_lock_timeout;