Re: [caldav] new webdav sync draft

Cyrus Daboo <cyrus@daboo.name> Mon, 07 December 2009 15:55 UTC

Return-Path: <cyrus@daboo.name>
X-Original-To: caldav@core3.amsl.com
Delivered-To: caldav@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 07B0D3A6A6B; Mon, 7 Dec 2009 07:55:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.299
X-Spam-Level:
X-Spam-Status: No, score=-4.299 tagged_above=-999 required=5 tests=[AWL=-1.700, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UQ04Zu+Odv-v; Mon, 7 Dec 2009 07:55:36 -0800 (PST)
Received: from daboo.name (daboo.name [151.201.22.177]) by core3.amsl.com (Postfix) with ESMTP id 1B50D3A6A45; Mon, 7 Dec 2009 07:55:36 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by daboo.name (Postfix) with ESMTP id E671E3D1C694; Mon, 7 Dec 2009 10:55:25 -0500 (EST)
X-Virus-Scanned: amavisd-new at daboo.name
Received: from daboo.name ([127.0.0.1]) by localhost (chewy.mulberrymail.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e4E+-aSVHibl; Mon, 7 Dec 2009 10:55:25 -0500 (EST)
Received: from caldav.corp.apple.com (unknown [17.101.32.44]) by daboo.name (Postfix) with ESMTPSA id 9AF223D1C687; Mon, 7 Dec 2009 10:55:23 -0500 (EST)
Date: Mon, 07 Dec 2009 10:55:16 -0500
From: Cyrus Daboo <cyrus@daboo.name>
To: Helge Hess <helge.hess@opengroupware.org>, Arnaud Quillaud <Arnaud.Quillaud@Sun.COM>
Message-ID: <A965C432C02C1101E4F0487F@caldav.corp.apple.com>
In-Reply-To: <FC4CE9C0-0F2C-4F4A-8F22-DAE3F1AA6B4D@opengroupware.org>
References: <4B057E6B.7040808@sun.com> <FC4CE9C0-0F2C-4F4A-8F22-DAE3F1AA6B4D@opengroupware.org>
X-Mailer: Mulberry/4.1.0a1 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; size="1710"
Cc: caldav@ietf.org, w3c-dist-auth@w3.org, vcarddav@ietf.org
Subject: Re: [caldav] new webdav sync draft
X-BeenThere: caldav@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <caldav.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/caldav>, <mailto:caldav-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/caldav>
List-Post: <mailto:caldav@ietf.org>
List-Help: <mailto:caldav-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/caldav>, <mailto:caldav-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Dec 2009 15:55:37 -0000

Hi Helge,

--On December 6, 2009 10:34:33 PM +0100 Helge Hess 
<helge.hess@opengroupware.org> wrote:

> Its not crucial, but helpful. If I don't know that a resource is new, I
> obviously have to scan the cache to check for that. Which is
> significantly more expensive than a simple INSERT (status = 'N', url=abc)
> ... Given that WebDAV sync is supposed to improve sync with large
> folders, the 'check' time consumption becomes more relevant too ...
>
> The question is whether I would do the scan anyways, just to be sure
> there are no DUPs. Probably! :-) [either me, or a database unique
> constraint doing effectively the same thing]
>
> So I guess either way is fine with me with a slight preference towards
> having a separate 'created'. If that would be significantly more
> difficult for servers, lets drop it, if not, lets preserve it.

Just to clarify - right now the spec says that a resource that is deleted 
and re-created is reported as "new" if a sync-token prior to the deletion 
is given in the REPORT. In that case, were you to do an INSERT using the 
UID as a unique key for that reported item you would get an error as the 
client already has the old copy cached. So a "simple" INSERT isn't going to 
work in that case.

Now we could change that behavior to have the deleted/re-created resource 
reported as "modified" rather than "new". However, I think the reality is 
that clients are going to have to accept the fact that there may be false 
positives (though hopefully never false negatives) so the prudent thing to 
do is always do a proper match between the server reported results and the 
full cache they currently have. Maybe we need a statement clarify that.

-- 
Cyrus Daboo