For what it's worth, I had more or less completed a mailstore for my own IMAP server after I decided not to work directly on James.
Here are some performance stats: http://www.joecheng.com/blog/entries/Mailstoreperformancetests.html In my mailstore implementation, each folder is a directory and the raw RFC822 of each message is stored as its own file. There is also a metadata repository per folder; this is managed using Prevayler. My rationale here was that most operations that involve many messages only involve the metadata, so by keeping that stuff small and together you can avoid thrashing when, for example, you want to get all the unread UIDs in a folder with 100,000 e-mails (takes 40ms with my implementation, on my laptop, with 1 concurrent user). The metadata doesn't help when doing the only other operation that potentially goes across all files: doing a search. But if you're using Lucene or something similar, then it basically doesn't matter. Also, I was surprised to discover that none of the "mainstream" Windows e-mail clients out there even use server-side searching (I believe I tested Outlook Express, Outlook, Mozilla... it was a while ago though). I think the most common client that does is Mutt (or Pine? I forget). E-mail me if you want my source, or if I can otherwise be of assistance. -jmc --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
