Hi,

There is probably a simple solution to the rename problem.  Its just that no
one has come up with it yet.

The expectation is that once mailbox:validity:uid is defined it refers to a
single message forever.  However, user's expect to able to change mailbox
names at their whim even though, the server is using the mailbox name in
its message unique identifier system.  As such the user should not be
able to change the mailbox name because is interferes with the server's
unique identification of messages.

The problem is that while mailbox names are unique at any one point in
time.  Over a period of time, we see that a mailbox name does not refer
to a unique object.  Rename isn't the only cause.  Successive create and
delete operations can cause multiple non-unique instances of a single
mailbox name.  However, in this case the server can usually guarantee
uniqueness of the validity value because the performance of the server
machine is not great enough to create, copy some number of messages,
delete and create again in less than one interval of the timer used for
most validity timestamps.  This would be mostly academic because the
likelyhood of a client having access to the messages prior to mailbox
deletion and recreation is very low.

Rename stands out because it affects all of the children of the mailbox.
It also changes only the name attribute of the mailbox and not the
contents.  The probability of encountering a conflict is greatly
increased.  Updating the contents of all files affected by a single
rename is not practical.

Here is one stab at a solution...

What is needed is an easy way for the server make the unique identifier
guarantee while still permitting the user to rearrange things.  A mailbox
name is not a guaranteed unique identifier.  It should be removed from
the unique identifier equation.  In its place, use a value that unlike
the mailbox name is completely controlled by the server.  It would be
similiar to the uidvalidity and have the following properties: unique
across the server, set when a mailbox is created, never changes and is
never reused.  An offline client could match against the id value and
would be able to keep its cache even when the mailbox got renamed.

Regards,
Mark Keasling <[EMAIL PROTECTED]>

Reply via email to