RE: Some thoughts about IMAP and Unified Messaging


Larry Osterman (larryo@Exchange.Microsoft.com)
Mon, 17 Dec 2001 14:37:16 -0800


Ah - you didn't catch one internal detail (and it's an important one
:)):

        If a message exists in a folder, it MUST have a UID.

Any alternative imposes a significant penalty during the SELECT phase of
the mailbox. In the current implementation for Exchange, select needs
to modify one column in one row in the database (it needs to update the
last selected UID property in the folder). Since the UID's are assigned
when the messages are added to the folder, the SELECT command doesn't
have to write to the messages table (ok, to be exact, the message-folder
table, but...). If we were to to assign UIDs on select, every the row
in the message-folder table for each new message would need to be
rewritten - which could conceivably be several hundred database writes
(if there are enough messages in the folder). It's far better to take a
very small hit when adding messages (when you're already writing the
message-folder table to add the message) then it is to modify the table
after the message has been created.

-----Original Message-----
From: Cyrus Daboo [mailto:daboo@cyrusoft.com]
Sent: Monday, December 17, 2001 2:16 PM
To: Pete Maclean; Larry Osterman
Cc: ietf-imapext@imc.org; vpim@lists.neystadt.org
Subject: RE: Some thoughts about IMAP and Unified Messaging

--On Monday, December 17, 2001 4:57 PM -0500 Pete Maclean
<aaddict@maclean.com> wrote:

>> The \Recent flag should be manufactured on a MAPI server. You
need
>> to remember the UID of the folder on the select verb, and check the
UID
>> of the message against the UID saved in the folder, if it's greater,
the
>> message is recent. The nature of the \Recent flag is that it can
never
>> be preserved on the message (not if you want to get the correct
>> semantics in a multi-accessed mailbox situation).
>
> I do manufacture it but a little differently from the way you suggest.
> Since I also manufacture my own UIDs, I give a message a \Recent flag
if,
> when I find it, it is marked unread and has no UID assigned.

But that won't work for a copy or append of a seen message, right?
Technically the \Recent flag should be set on those as well. I would
think
that 'has no UID assigned' ought to be the only test you need to set
\Recent.

-- 
Cyrus Daboo



This archive was generated by hypermail 2.0b3 on Tue Dec 18 2001 - 00:37:57 IST