Re: [imapext] Proposal for a new IMAP Working Group to revise CONDSTORE & QRESYNC

Michael M Slusarz <slusarz@horde.org> Wed, 06 March 2013 02:54 UTC

Return-Path: <slusarz@horde.org>
X-Original-To: imapext@ietfa.amsl.com
Delivered-To: imapext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4B34221F860A for <imapext@ietfa.amsl.com>; Tue, 5 Mar 2013 18:54:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.437
X-Spam-Level:
X-Spam-Status: No, score=-0.437 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gRnG+aEIkPuC for <imapext@ietfa.amsl.com>; Tue, 5 Mar 2013 18:54:57 -0800 (PST)
Received: from qmta03.emeryville.ca.mail.comcast.net (qmta03.emeryville.ca.mail.comcast.net [IPv6:2001:558:fe2d:43:76:96:30:32]) by ietfa.amsl.com (Postfix) with ESMTP id A805721F85FD for <imapext@ietf.org>; Tue, 5 Mar 2013 18:54:57 -0800 (PST)
Received: from omta03.emeryville.ca.mail.comcast.net ([76.96.30.27]) by qmta03.emeryville.ca.mail.comcast.net with comcast id 7pDC1l0020b6N64A32ux52; Wed, 06 Mar 2013 02:54:57 +0000
Received: from bigworm.curecanti.org ([71.229.167.0]) by omta03.emeryville.ca.mail.comcast.net with comcast id 82uw1l00800qwSn8P2uwvi; Wed, 06 Mar 2013 02:54:57 +0000
Received: from localhost (localhost.localdomain [127.0.0.1]) (Authenticated sender: slusarz) by bigworm.curecanti.org (Postfix) with ESMTPSA id 872886A079 for <imapext@ietf.org>; Tue, 5 Mar 2013 19:54:55 -0700 (MST)
Received: from schrute.curecanti.org (schrute.curecanti.org [172.18.5.4]) by bigworm.curecanti.org (Horde Framework) with HTTP; Tue, 05 Mar 2013 19:54:55 -0700
Date: Tue, 05 Mar 2013 19:54:55 -0700
Message-ID: <20130305195455.Horde.N1ImkwPKgAcfZPGunyn_UQ1@bigworm.curecanti.org>
From: Michael M Slusarz <slusarz@horde.org>
To: imapext@ietf.org
References: <513607D5.4090808@isode.com> <211A410D-C67D-4FF6-AACB-4007F75F7148@iki.fi>
In-Reply-To: <211A410D-C67D-4FF6-AACB-4007F75F7148@iki.fi>
User-Agent: Internet Messaging Program (IMP) H5 (6.0.5-git)
Accept-Language: en
X-Originating-IP: 172.18.5.4
X-Remote-Browser: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"; DelSp="Yes"
MIME-Version: 1.0
Content-Disposition: inline
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1362538497; bh=Wqll3qUdhzTuHI+oglMh1qMXhxkqAWfh9Dlcl5bJLWY=; h=Received:Received:Received:Received:Date:Message-ID:From:To: Subject:Content-Type:MIME-Version; b=YScnUj3Vh2YiUeok8g4u2v+4Vz7acebJ9anXc99z9RVcVPyo1/7BB0nou0mqTdzIK aSztxFeVVVv6z9XWg8ARcI8wo0cYPAAUSqa9dynVvNjMVFWuVpHYr3No2M9HMboofR uWVe1ztBZn5Q9IXv35KmzjeGrvNUmfeNW+e59q1ebzu4iau/HsY3fpjMN7Pk6tKqCe 2ie76CO4jEMeZa5j5qpMP3MP5UuVpZvlOBSds47nogDbw5a9ZffvS37ckSYlXJZxvW fW/vba9cIzWx3IGDGTc2zv5pzJOrXK1tVH9UMNS5u2u/Ltf2ufj4I5ySpGz05hDqkE Xp1unzddy/2ww==
Subject: Re: [imapext] Proposal for a new IMAP Working Group to revise CONDSTORE & QRESYNC
X-BeenThere: imapext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Discussion of IMAP extensions <imapext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imapext>, <mailto:imapext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imapext>
List-Post: <mailto:imapext@ietf.org>
List-Help: <mailto:imapext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imapext>, <mailto:imapext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Mar 2013 02:54:58 -0000

Quoting Timo Sirainen <tss@iki.fi>:

> On 5.3.2013, at 16.57, Alexey Melnikov <alexey.melnikov@isode.com> wrote:
>
>> I've noticed some surge in activity related to implementing  
>> CONDSTORE (RFC 4551)/QRESYNC (RFC 5162) in both clients and  
>> servers, so I drafted a new WG charter proposal to update/clarify  
>> these:
> ..
>> So please comment on whether you think this work is worth doing and  
>> on the proposed charter text.
>
> Can we keep it on this mailing list? I've too many mailing lists already. :)
>
>> I've also posted a new version of RFC 5162bis  
>> (http://tools.ietf.org/html/draft-melnikov-5162bis-01), which  
>> addressed most (but not all) of existing errata on the document. If  
>> a new WG is to be formed, I propose that the document is used as  
>> one of the initial documents.
>
> Sounds like a good idea. I didn't read it yet, but some  
> QRESYNC/CONDSTORE things that come to my mind:
>
>  - command length limits as discussed by Michael
>  - don't allow server to send VANISHED duplicates
>  - algorithm how server uses the seq/uid mapping could be better to  
> reduce how much data to send (I was planning on thinking this  
> through but never got around to it)
>  - \recent flag changes highestmodseq? probably nobody cares and  
> makes it more difficult for server.
>  - condstore: is anyone really using per-flag modseq counters?

Adding to Timo's list of things to possibly discuss/consider:

- Make VANISHED responses mandatory - or at least an option to allow  
for this (I think I saw some placeholder text in the draft regarding  
this)

- There was discussion a few weeks ago about whether a server should  
return "ENABLED QRESYNC" or "ENABLED QRESYNC CONDSTORE" to an "ENABLE  
QRESYNC" command

- Editorial suggestion: A better discussion, or at least a more open  
discussion, that in practical use servers don't tend to "remember"  
expunged messages for long.  It was a bit confusing and tripped me up  
as a client author since this implementation detail is sort of buried  
in the server implementation sections.

E.g. Section 3.2 could probably use an example of a server that only  
remembers expunges over the last 100 modseqs and has consolidated all  
expunges before that into a single checkpointed stored value.  So  
people aren't as surprised, as I was, the first time they see a  
VANISHED FETCH of (HIGHESTMODSEQ - 50) that somehow returns tens of  
thousands of UIDs when in reality only a few were actually expunged in  
that modseq timeframe.

- condstore: this might be more of an implementation tip, but this is  
valid response in CONDSTORE that is not necessarily intuitive and  
needs to be handled:

a SELECT INBOX (CONDSTORE)
[...]
* 2 EXISTS
* OK [HIGHESTMODSEQ 5] Highest
a OK [READ-WRITE] SELECT completed.
b UID FETCH 5 (UID)
* 1 FETCH (UID 5)
* 2 FETCH (FLAGS (\Seen) MODSEQ (6))
b OK FETCH completed.

michael

___________________________________
Michael Slusarz [slusarz@horde.org]