# HG changeset patch # User Timo Sirainen # Date 1314233690 -10800 # Node ID 4317429862e1726d0b4a7efe1309885ec03c17c2 # Parent eaee3b8a98cf4e8fe507f23441fd8f29e5d2b786 lib-storage: Moved all transaction stats_* to struct mailbox_transaction_stats. diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/cydir/cydir-mail.c --- a/src/lib-storage/index/cydir/cydir-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/cydir/cydir-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -25,7 +25,7 @@ if (mail->lookup_abort == MAIL_LOOKUP_ABORT_NOT_IN_CACHE) return mail_set_aborted(mail); - mail->transaction->stats_stat_lookup_count++; + mail->transaction->stats.stat_lookup_count++; path = cydir_mail_get_path(mail); if (stat(path, st_r) < 0) { if (errno == ENOENT) @@ -99,7 +99,7 @@ int fd; if (mail->data.stream == NULL) { - _mail->transaction->stats_open_lookup_count++; + _mail->transaction->stats.open_lookup_count++; path = cydir_mail_get_path(_mail); fd = open(path, O_RDONLY); if (fd == -1) { diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/dbox-common/dbox-mail.c --- a/src/lib-storage/index/dbox-common/dbox-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/dbox-common/dbox-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -145,7 +145,7 @@ if (storage->v.mail_open(mail, &offset, &file) < 0) return -1; - _mail->transaction->stats_fstat_lookup_count++; + _mail->transaction->stats.fstat_lookup_count++; if (dbox_file_stat(file, &st) < 0) { if (errno == ENOENT) mail_set_expunged(_mail); diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/dbox-multi/mdbox-mail.c --- a/src/lib-storage/index/dbox-multi/mdbox-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/dbox-multi/mdbox-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -126,7 +126,7 @@ } if (!dbox_file_is_open(mail->open_file)) - _mail->transaction->stats_open_lookup_count++; + _mail->transaction->stats.open_lookup_count++; if (dbox_file_open(mail->open_file, &deleted) <= 0) return -1; if (deleted) { diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/dbox-single/sdbox-mail.c --- a/src/lib-storage/index/dbox-single/sdbox-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/dbox-single/sdbox-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -68,7 +68,7 @@ if (!sdbox_mail_file_set(mail)) { if (!dbox_file_is_open(mail->open_file)) - _mail->transaction->stats_open_lookup_count++; + _mail->transaction->stats.open_lookup_count++; if (dbox_file_open(mail->open_file, &deleted) <= 0) return -1; if (deleted) { diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/index-mail-headers.c --- a/src/lib-storage/index/index-mail-headers.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/index-mail-headers.c Thu Aug 25 03:54:50 2011 +0300 @@ -625,7 +625,7 @@ *value_r = index_mail_get_parsed_header(mail, field_idx); return 0; } - _mail->transaction->stats_cache_hit_count++; + _mail->transaction->stats.cache_hit_count++; data = buffer_get_modifiable_data(dest, &len); if (len == 0) { @@ -807,7 +807,7 @@ if (mail_cache_lookup_headers(_mail->transaction->cache_view, dest, _mail->seq, headers->idx, headers->count) > 0) { - _mail->transaction->stats_cache_hit_count++; + _mail->transaction->stats.cache_hit_count++; if (mail->data.filter_stream != NULL) i_stream_destroy(&mail->data.filter_stream); mail->data.filter_stream = diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/index-mail.c --- a/src/lib-storage/index/index-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/index-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -50,7 +50,7 @@ ret = mail_cache_lookup_field(mail->mail.mail.transaction->cache_view, buf, mail->data.seq, field_idx); if (ret > 0) - mail->mail.mail.transaction->stats_cache_hit_count++; + mail->mail.mail.transaction->stats.cache_hit_count++; return ret; } diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/index-search.c --- a/src/lib-storage/index/index-search.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/index-search.c Thu Aug 25 03:54:50 2011 +0300 @@ -1198,12 +1198,12 @@ static unsigned long long search_get_cost(struct mailbox_transaction_context *trans) { - return trans->stats_open_lookup_count * SEARCH_COST_DENTRY + - trans->stats_stat_lookup_count * SEARCH_COST_DENTRY + - trans->stats_fstat_lookup_count * SEARCH_COST_ATTR + - trans->stats_cache_hit_count * SEARCH_COST_CACHE + - trans->stats_files_read_count * SEARCH_COST_FILES_READ + - (trans->stats_files_read_bytes/1024) * SEARCH_COST_KBYTE; + return trans->stats.open_lookup_count * SEARCH_COST_DENTRY + + trans->stats.stat_lookup_count * SEARCH_COST_DENTRY + + trans->stats.fstat_lookup_count * SEARCH_COST_ATTR + + trans->stats.cache_hit_count * SEARCH_COST_CACHE + + trans->stats.files_read_count * SEARCH_COST_FILES_READ + + (trans->stats.files_read_bytes/1024) * SEARCH_COST_KBYTE; } static int search_match_once(struct index_search_context *ctx) diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/istream-mail-stats.c --- a/src/lib-storage/index/istream-mail-stats.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/istream-mail-stats.c Thu Aug 25 03:54:50 2011 +0300 @@ -24,10 +24,10 @@ ret = i_stream_read_copy_from_parent(&stream->istream); if (ret > 0) { - mstream->trans->stats_files_read_bytes += ret; + mstream->trans->stats.files_read_bytes += ret; if (!mstream->files_read_increased) { mstream->files_read_increased = TRUE; - mstream->trans->stats_files_read_count++; + mstream->trans->stats.files_read_count++; } } return ret; diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/maildir/maildir-mail.c --- a/src/lib-storage/index/maildir/maildir-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/maildir/maildir-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -71,7 +71,7 @@ ctx.fd = -1; ctx.path = NULL; - mail->transaction->stats_open_lookup_count++; + mail->transaction->stats.open_lookup_count++; if (!mail->saving) { if (maildir_file_do(mbox, mail->uid, do_open, &ctx) < 0) return NULL; @@ -120,13 +120,13 @@ } if (imail->data.stream != NULL) { - mail->transaction->stats_fstat_lookup_count++; + mail->transaction->stats.fstat_lookup_count++; stp = i_stream_stat(imail->data.stream, FALSE); if (stp == NULL) return -1; *st = *stp; } else if (!mail->saving) { - mail->transaction->stats_stat_lookup_count++; + mail->transaction->stats.stat_lookup_count++; ret = maildir_file_do(mbox, mail->uid, do_stat, st); if (ret <= 0) { if (ret == 0) @@ -134,7 +134,7 @@ return -1; } } else { - mail->transaction->stats_stat_lookup_count++; + mail->transaction->stats.stat_lookup_count++; path = maildir_save_file_get_path(mail->transaction, mail->seq); if (stat(path, st) < 0) { mail_storage_set_critical(mail->box->storage, diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/index/raw/raw-mail.c --- a/src/lib-storage/index/raw/raw-mail.c Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/index/raw/raw-mail.c Thu Aug 25 03:54:50 2011 +0300 @@ -17,7 +17,7 @@ if (mail->lookup_abort == MAIL_LOOKUP_ABORT_NOT_IN_CACHE) return mail_set_aborted(mail); - mail->transaction->stats_fstat_lookup_count++; + mail->transaction->stats.fstat_lookup_count++; st = i_stream_stat(mail->box->input, TRUE); if (st == NULL) { mail_storage_set_critical(mail->box->storage, diff -r eaee3b8a98cf -r 4317429862e1 src/lib-storage/mail-storage-private.h --- a/src/lib-storage/mail-storage-private.h Thu Aug 25 03:54:18 2011 +0300 +++ b/src/lib-storage/mail-storage-private.h Thu Aug 25 03:54:50 2011 +0300 @@ -345,6 +345,18 @@ struct mail_storage_module_register *reg; }; +struct mailbox_transaction_stats { + unsigned long open_lookup_count; + unsigned long stat_lookup_count; + unsigned long fstat_lookup_count; + /* number of files we've opened and read */ + unsigned long files_read_count; + /* number of bytes we've had to read from files */ + unsigned long long files_read_bytes; + /* number of cache lookup hits */ + unsigned long cache_hit_count; +}; + struct mailbox_transaction_context { struct mailbox *box; enum mailbox_transaction_flags flags; @@ -367,17 +379,7 @@ struct mail_save_context *save_ctx; /* these statistics are never reset by mail-storage API: */ - - unsigned long stats_open_lookup_count; - unsigned long stats_stat_lookup_count; - unsigned long stats_fstat_lookup_count; - /* number of files we've opened and read */ - unsigned long stats_files_read_count; - /* number of bytes we've had to read from files */ - unsigned long long stats_files_read_bytes; - /* number of cache lookup hits */ - unsigned long stats_cache_hit_count; - + struct mailbox_transaction_stats stats; /* Set to TRUE to update stats_* fields */ unsigned int stats_track:1; };