On 5.1.2004, at 08:23, Mark Crispin wrote:

On Mon, 5 Jan 2004, Timo Sirainen wrote:
the problem with traditional UNIX mailbox format is that
shared access itself is a problem
I don't think it's that much of a problem. It may be slow when other
applications modify it though. My plan is:
- whenever mtime or size changes "unexpectedly", resync everything

Resync is a problem. You have to scan the entire mailbox in order to locate all the messages. You can't just say "message 1021 didn't move, therefore messages 1-1020 didn't move" -- consider the case of a flag added to one message and removed from another.

Sure, that's what I meant. But the point was to prevent it from happening as much as possible. Usually you'd do shared access only with multiple IMAP sessions which can do faster syncing internally in most cases.

Preallocated space for flags would help, but it turns out that some legacy
UNIX tools remove extra spaces.

Also nothing guarantees that preallocated space is ever enough for keywords.

At least the task is a little bit easier if you store UIDs with the
message, rather than having to infer "same message" from message contents.

Several POP3 servers get UID by getting MD5 sum of some part of message, so I think that's also quite safe to use.

Traditional UNIX mailbox format really sucks. You only want to use it if
you must support legacy UNIX tools. And if you support legacy UNIX tools,
you have to consider the damn stupid things those legacy tools do.

If you don't have to support legacy UNIX tools, you'll save yourself
considerable hair-pulling by using a more sensible mailbox format that
considers shared access from the onset.

I'm trying to support mbox format in mostly sane environment. For example many ISPs are using mbox and only things accessing them are SMTP, POP3 and IMAP servers. Of course they could be using a better format, but transition is never easy or completely safe. I think most modern MUAs also behave pretty nicely.

Also I don't think there even exists much better formats if maildir isn't wanted. mbx works only with local filesystems and it has very little application support outside c-client.

Attachment: PGP.sig
Description: This is a digitally signed message part



Reply via email to