On Thu, 2003-03-13 at 15:42, Timo Sirainen wrote: > On Wed, Mar 12, 2003 at 05:45:25PM -0700, Alexey Melnikov wrote: > > Please, have a look at draft-melnikov-imap-condstore-10.txt. Your timestamp is > > called modseq (modification sequence) in the draft. FLAGS-VALIDITY is called > > HIGHESTMODSEQ in the document. > > The functionality you propose can be build as a small extension to CONDSTORE > > (and yes, other people already proposed something similar before). > > There's no way I'm going to store extra 64bit per message in mailbox just > for this extension, but looks like it wouldn't prevent from using the tricks > I mentioned earlier. Instead of storing it for each message, I'd use my > existing transaction log file to remember last few changes. MODSEQ would be > last_MODSEQ + position in log file. MODSEQ of messages not in log file > would all be last_MODSEQ. Do you think this would cause any problems?
If you do this, you'll need to fix up the case where there's a single client and it's the only one making changes to the folder. If a client makes a conditional store, not only does the MODSEQ of the _changed_ messages increase, but also the MODSEQ of _all_ other messages in the folder. Maybe you'd want something like... a103 UID STORE 6,4,8 (HIGHESTMODSEQ 200012121230045) ... which succeeds only if 200012121230045 is actually the HIGHESTMODSEQ for the folder, and returns the _new_ HIGHESTMODSEQ. That'd mean that a client has to be _entirely_ up to date before submitting any changes though. -- dwmw2
