On 19.8.2011, at 12.13, Angel L. Mateo wrote:
I have a farm of dovecot 1.1 servers (debian lenny). Mailboxes are in Maildir format.
Is there any way to manually update indexes?
v2.0 has "doveadm index" command to do this. There's no other good way to do this.
Does it worth? I mean... Our problem is that mail is delivered via dovecot lda, but, because we have a farm of servers, we don't guarantee that mail is delivered through the same server that the user is using for his imap connection, so the imap server could have this index unupdated. So I want to force an update (or at least nearly updated) in order to have the index updated in all servers at the time the user get to work.
Doing it via IMAP won't guarantee that everything the user's client needs is indexed/cached. Different clients need different things, Dovecot only indexes stuff that client requests. You'd have to look up from index files what the client wants indexed and then perform IMAP commands requesting those fields. Even the act of doing this may mess up caching decisions, because user may have changed client and now it's indexing unnecessary fields. (Actually now that I think of it, doveadm index has this same problem. Have to get that fixed.)
With v2.0 you could if you use Dovecot proxy (or director) you can also proxy doveadm connections through it, so a "doveadm index" would always go to the correct server. http://wiki2.dovecot.org/Director at the bottom has some info how to set this up (works also with plain proxy, without director).