[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MODSEQ in CONDSTORE




On Thu, 2 Feb 2006, Dave Cridland wrote:
A user setting \Seen (possibly implicitly in a FETCH BODY[...]) causes the MODSEQ to be bumped for that message. If the implementation is poor, then this can cause the MODSEQ seen by other users to be changed, too. That's undesirable, but as a client implementor, I infinitely prefer that level of implementation to none at all.

But that's only if (1) the mailbox has per-user flags, (2) the mailbox has MODSEQ. Right?


Personally, I never thought that per-user flags were worth the complexity, even though I was guilty of creating them. But it was only as a grim necessity for bboards and newsgroups; and even then that was just a single flag. The idea of using MODSEQ for such a thing staggers me.

Otherwise, you're effectively lowering the width of the UID space, down to 30, or 22, bits. That's still probably plenty of space, but there's something philosophically wrong about an extension lowering the scalability of the protocol it extends.

This argument only applies when you are monotonically allocating UIDs (otherwise it's your implementation that reduces the UID space, not MODSEQ). And if you are monotonically allocating UIDs, then there is no reason not to monotonically allocate MODSEQ. The notion of there being over 4 billion updates to one mailbox is simply not credible.


Now, if you have per-user and global flags in a mailbox that has MODSEQ, that may be a different matter. But if you have that, that's a hole that you dug for yourself. I see no reason to have such a thing; and if it was that important you should have defined two MODSEQs.

I disagree. Either MODSEQ reports that something touched the message, or it reports that something changed the mesage. As matters stand, it is ambiguous. A client may care.
Well, let me put it this way - a client which actually does care is broken. A server which claims there to be a change when there is not is deficient.

[sarcasm] And the IMAP community never, ever, produces broken clients and deficient servers (or deficient clients and broken servers). [/sarcasm]


We should have learned the painful lesson by now.

Well, I don't think it's much of a problem. Most of the computers I work with these days increasingly use "unsigned long" for 64-bit values - even my laptop is 64-bit, but the vast majority of the 32-bit systems I use seem to support some kind of "unsigned long long" or equivalent.
That hasn't been my experience... :-(
Get a better compiler? :-)

Sure, please write it. And give it away for free, along with free technical support.


I have a difficult time tolerating the "my system has such-and-such, and it's your fault if your system does not have it too" attitude. Either we care about interoperability and implementation costs, or we should forget this IETF nonsense and go home.

I don't believe clients ever need to handle more than 3 MODSEQ values at any time, and only need to store 2 permanently. If I needed to store each message's MODSEQ, I'd probably feel differently, but I don't think that's ever the case.

Are you certain? IMHO, the client ability to fetch a message's MODSEQ directly is like placing a loaded pistol with a hair trigger in a room of preschoolers. MODSEQ's ascending property makes it nice and shiny too.


Perhaps it would have been better to have created an alternative means to do those functionalities that doesn't leave temptation in the way.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.