MBOX-Line: From mrc+uw at panda.com  Sat Jun 13 08:21:02 2009
To: imap-protocol@u.washington.edu
From: Mark Crispin <mrc+uw@panda.com>
Date: Fri Jun  8 12:34:42 2018
Subject: [Imap-protocol] No DateModified or Equivalent for use with
	Disconnected Clients?
In-Reply-To: <d055a06e0906130630j25eee4e7t65cf0a6f55d263e8@mail.gmail.com>
References: <d055a06e0906130630j25eee4e7t65cf0a6f55d263e8@mail.gmail.com>
Message-ID: <alpine.OSX.2.00.0906130806570.269@hsinghsing.panda.com>

There is an extension, not widely implemented, that provides a 
modification sequence capability.

However, you ought to rethink some of your assumptions.

IMAP messages are immutable.  The only thing that can change are flags. 
Do you really need to mirror the server flags in your client copy?  If so, 
why?

If you mirror, what do you wish to accomplish by the mirroring?  Are there 
alternative strategies (e.g., via SEARCH) that may work better?

IMAP is an extremely stateful protocol.  It is not at all like HTTP.  But 
disconnected use discards all of that hard-won state.  Is this really the 
best implementation for your client?

Disconnected use assumes that the majority of the user's use will be 
offline from the Internet.  This was important in the 1980s and early 
1990s, when it was difficult to find Internet access.  Is that so 
important today?

We no longer live in a world of 1200 bps modems.  Even radio is at 
broadband access speeds.  Does it really matter that something is 
"inefficient" if it takes less than a second and is only done once in the 
session at startup?

Last, but not least: over the years I have talked with many people over 
the years who were very concerned about inefficiency and who choose to 
disregard my suggestions.  I have also seen their products.  They have 
been invariably been slower than the "inefficient" way.

Are you really optimizing the right things?  There's a lot of that.  Just 
now, I find myself tearing down a highly efficient algorithm in favor of 
an inefficient one -- because it optimizes the wrong thing and in doing so 
incurred a terrible performance penalty elsewhere to achieve that 
optimization.

Spend some time on this.  Challenge some of your assumptions.  I think 
that you'll find the results will reward the time spent doing so.

-- 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.

