>Fri Sep 26 2008 08:31:34 EDT from IGnatius T [EMAIL PROTECTED] 
>Subject: Re: Citadel commit log: revision 6628
>
>
>>The "Other headers" can be stored seperate, like the body is (but not in 

>the   
>
>>same place), so that they can be fetched without fetching the body. (I 

>don't   
>
>>like that idea)    
>>

>   
> Hmm ... how about this: we can store a special Citadel top-level header
>that contains "all of the headers Citadel is not interested in, that we're
>also leaving attached to the body" ?  
>   
> We can stuff it in there "as is" without any further processing, and it'll
>contain everything -- content type, received, mime version, etc. etc. etc.  
>Citadel code can be modified *once* to simply ignore that header.   Then,
>when running in HEADERS_ONLY mode, if that field is present, we can use it
>*instead* of fetching the message body.  
>   
> Hmm ... now that I think about it, there's also another option.  
>   
> Citadel stores the message body as a separate database object *only* if
>it's larger than 1024 bytes.  This was done in order to eliminate the second
>database operation when you're just plowing through a room full of messages
>on a BBS, for example, where most of the replies are very short.  
> We could modify that code instead, and say, when storing the message body
>separately, we still want to store the second-level headers along with the
>top-level headers.  If the code recognizes a message stored that way, it will
>be able to retrieve the full headers, even when running in HEADERS_FAST mode.
> How about that?  
>  



I'm going to implement the method of fetching the start of the body only to
pull back extra headers.

I'll try and make whether or not to do this an option which could depend (at
the imap level) on regex matching of the imap client id,so clients that don't
mind receiving truncated headers can get full speed and those that need full
headers can get nearly full speed, and also being fully compatible with
messages already in the message store.

The only way to get additional speed above this and still be fully imap
compliant (i.e. return all the headers) is to have 4K blocks instead of 1K
blocks to store the message headers so that in almost 100% of the cases, all
th eheaders will be available.

Sam

Reply via email to