Re: [Jmap] WG Review: JSON Mail Access Protocol (jmap) - reducing configuration complexity

Ted Lemon <mellon@fugue.com> Mon, 13 February 2017 19:25 UTC

Return-Path: <mellon@fugue.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 296601297B8 for <ietf@ietfa.amsl.com>; Mon, 13 Feb 2017 11:25:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h4ZmtLn6hKuL for <ietf@ietfa.amsl.com>; Mon, 13 Feb 2017 11:25:26 -0800 (PST)
Received: from mail-qk0-x236.google.com (mail-qk0-x236.google.com [IPv6:2607:f8b0:400d:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E6F9129618 for <ietf@ietf.org>; Mon, 13 Feb 2017 11:25:26 -0800 (PST)
Received: by mail-qk0-x236.google.com with SMTP id s186so103784628qkb.1 for <ietf@ietf.org>; Mon, 13 Feb 2017 11:25:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=nOVnHDkOpIuPyVbnJKVp8bLTyh8XubDxqNRhJ/RR4R0=; b=1FMzUd0h62dbB5iYGQICzBoCqYALm5NhknpdfXICxjkGc5fZ0Sn4xu0Yrf/bAbsNFz fdQ01J5bETW2ts/WddgNSEjVluewvSEFE1K6FDi3Groes3/CZXRKQgYv/x9SWaC2KWXt YMeg+WZOPGra+EF/a00GbspjrpZfnw91r2xOboPLUfNjN0HtJ0k+PbC8nLm3Ka4Xe9z2 GHxBhM85gptOyjGa/Zz7k1VBmAp7cTPR6ht8dLxCDPnabtpAiNWO9AvWIcxr+rRGTSST +gl0XkCZy1EZMq8Ci9kVLNgrVYEOeNsxezpHiIWSo7IE0n4BCM/OUDB5/+tC4gizpENK WlNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=nOVnHDkOpIuPyVbnJKVp8bLTyh8XubDxqNRhJ/RR4R0=; b=mLp9My9No9C07ACYu2e7h1pUjp2f0aqcgxBGn3BKqCdaLTNgvL5Q6K/UaFFYjH5HJR VBfSySLTi0WCwVvkRbu01nWw5qguFuTzHRuTlS0GbzibyGjislbbHD+zDWPclfOsq/2Z Qp8Udv/VMUw6E7/xQLyJOxZPH35Xkn9FPDvmqtvQLeLgQc8P+ZXnb6NGa4A8KO3MB/bi 2iBe7t7v4aclmY/ynbcd6OYrHoFjoFONwG90zugtX5n5Suwj0MHvTDk8PptnPHdqLpqJ qRt/BIBn7+9F7zk+h2q6z4IS6EDmzPW1xb8nE3hzSsMI5ESzgBd7vQ7ljZtfytmrfVnj saXQ==
X-Gm-Message-State: AMke39nltdojHsEsEUlOUyePZ6bPwo+UxsRvm47nbXRLsl7LZ1a88w6jfLe/lFZK2i4/zw==
X-Received: by 10.55.71.13 with SMTP id u13mr21750125qka.300.1487013925488; Mon, 13 Feb 2017 11:25:25 -0800 (PST)
Received: from [192.168.1.228] (c-73-167-64-188.hsd1.nh.comcast.net. [73.167.64.188]) by smtp.gmail.com with ESMTPSA id d191sm8110240qke.15.2017.02.13.11.25.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Feb 2017 11:25:24 -0800 (PST)
From: Ted Lemon <mellon@fugue.com>
Message-Id: <B2B0ED0F-62ED-4F7D-A977-0E82D6623BC4@fugue.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4552FF5B-9ED5-468A-BABB-65C7A0BDF198"
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Subject: Re: [Jmap] WG Review: JSON Mail Access Protocol (jmap) - reducing configuration complexity
Date: Mon, 13 Feb 2017 14:25:23 -0500
In-Reply-To: <8FE91176833F1697D9844B25@PSB>
To: John C Klensin <john-ietf@jck.com>
References: <3b955910-12d0-2c56-0dc2-30279f98aea5@isode.com> <19fabdd7-77c5-fc13-616e-26d39d2f23df@isode.com> <20170208142241.GB84460@mx4.yitter.info> <217b1d1b-adba-2ebb-30ca-600f8dc77246@isode.com> <32D2801528D191A01AD4D3B2@PSB> <2fa724eb-18ba-b818-6a01-a07db5a9a9a4@isode.com> <01QANBYPRC140005AQ@mauve.mrochek.com> <1162BF5A37921B1555FF29F9@PSB> <CAKHUCzyQSTiLXg9W+ePwwm=B01TNgCN+L729pzP1iZvqG3Kweg@mail.gmail.com> <E555C5F4-2B61-4705-B62C-998769E5FC1D@fugue.com> <8FE91176833F1697D9844B25@PSB>
X-Mailer: Apple Mail (2.3259)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/QMU1RvSJZquc_dzRKJeZHQeycBI>
Cc: Alexey Melnikov <alexey.melnikov@isode.com>, Ned Freed <ned.freed@mrochek.com>, "ietf@ietf.org Discussion" <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 19:25:28 -0000

On Feb 13, 2017, at 2:20 PM, John C Klensin <john-ietf@jck.com> wrote:
> I would have described the IMAP model as assuming that each
> message is associated with a single mailbox.  Most of the issues
> you mention are associated with "resides".  Up to a point, it is
> possible to use a Google-like arrangement to support all of the
> IMAP functionality I can think of simply by attaching a label or
> attribute with the mailbox name and constraining retrievals,
> searches, and displays accordingly.   That is exactly what at
> least some of the systems that use a Relational DBMS as a
> mailstore do, whether they then have "relation per user" or
> treat the UserID as yet another attribute.

Indeed, but then what you are saying is that replicating the IMAP data model is _not_ necessary, which is my point.   If you think of the data store of email messages as a single relation, with something like a message ID as the key, then it's easy to synchronize with the server: you just make sure that your copy of the relation has the intended subset of all messages in the relation, and it's very easy to compare to see whether this is the case.   If, on the other hand, you have N relations, each of which is a mailbox, then synchronizing becomes a process of iterating across the set of all relations, synchronizing each one.

When you describe it using the relational model, I think it's pretty obvious why you want the single-relation model, and not the multiple-relation model.