Re: [Tzdist] Fwd: [tzdist] #32 (service): managing historical data

Lester Caine <lester@lsces.co.uk> Sat, 13 December 2014 19:55 UTC

Return-Path: <lester@lsces.co.uk>
X-Original-To: tzdist@ietfa.amsl.com
Delivered-To: tzdist@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25C051A1B36 for <tzdist@ietfa.amsl.com>; Sat, 13 Dec 2014 11:55:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham
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 PQLVphS40i3G for <tzdist@ietfa.amsl.com>; Sat, 13 Dec 2014 11:55:47 -0800 (PST)
Received: from mail4.serversure.net (mail4-2.serversure.net [217.147.176.214]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3DD071A1A95 for <tzdist@ietf.org>; Sat, 13 Dec 2014 11:55:46 -0800 (PST)
Received: (qmail 9433 invoked by uid 89); 13 Dec 2014 19:55:44 -0000
Received: by simscan 1.3.1 ppid: 9427, pid: 9430, t: 0.1134s scanners: attach: 1.3.1 clamav: 0.96/m:52/d:10677
Received: from unknown (HELO ?10.0.0.8?) (lester@rainbowdigitalmedia.org.uk@86.178.188.220) by mail4.serversure.net with ESMTPA; 13 Dec 2014 19:55:44 -0000
Message-ID: <548C99BE.2000009@lsces.co.uk>
Date: Sat, 13 Dec 2014 19:55:42 +0000
From: Lester Caine <lester@lsces.co.uk>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Cyrus Daboo <cyrus@daboo.name>, tzdist@ietf.org
References: <059.5da79d7c9d394e20e3c22513cfe04c33@tools.ietf.org> <676B23282D9F7F1DCE6A54C7@caldav.corp.apple.com> <CAFpi07x79gJLEBWmpxWv7V13CiwmeKGy7bwS1=+ukp-sKmwFxA@mail.gmail.com> <5488921B.8020900@lsces.co.uk> <5488973F.7050400@andrew.cmu.edu> <54889C39.1080103@lsces.co.uk> <D2BE5C3BFE11019ECF4BEF62@caldav.corp.apple.com> <5488A6E6.8050903@lsces.co.uk> <CADC+-gTiyJ4QHZT6m3je9M9-ifSELnSWgmgy7iXSWNS+p8pthg@mail.gmail.com> <5488C0EA.8090505@lsces.co.uk> <CADC+-gTgckSe1ca6Sai6RguQid=ReM7bH6K8+dVVFm-YfbpFbA@mail.gmail.com> <5488DA56.2090306@lsces.co.uk> <CADC+-gQN=Qb2y8M-bHnPzMcK8r=xUG-seQ7XzvZwwcWsHpHnBQ@mail.gmail.com> <54895986.6060806@lsces.co.uk> <5489CA90.1070307@gmail.com> <35BC5886C9A58F866E8A46A8@caldav.corp.apple.com> <5489D9F7.3080207@gmail.com> <D196D63077FEC1B090DF7C86@caldav.corp.apple.com> <5489F79E.4080909@gmail.com> <BC19CC6916DC0E59CA63737D@caldav.corp.apple.com> <548B929C.3010505@gmail.com> <548C04F8.30005@lsces.co.uk> <D0F712C2A7EF425A8887E231@cyrus.local>
In-Reply-To: <D0F712C2A7EF425A8887E231@cyrus.local>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/tzdist/IXMbZNlYkbyDUT8hVuqZrSDSUI4
Subject: Re: [Tzdist] Fwd: [tzdist] #32 (service): managing historical data
X-BeenThere: tzdist@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <tzdist.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tzdist>, <mailto:tzdist-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tzdist/>
List-Post: <mailto:tzdist@ietf.org>
List-Help: <mailto:tzdist-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tzdist>, <mailto:tzdist-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Dec 2014 19:55:50 -0000

On 13/12/14 14:44, Cyrus Daboo wrote:

1 and 2 ... spot on ...

> 3) Open issue: does the version value belong in the time zone data
> returned by the server. My big concern about this is that I would prefer
> it if clients did not have to download an entire time zone just to find
> out that the only difference is a change in the version. That is what
> would happen if the client only used ETag and If-None-Match with HTTP.
> This impacts one of the use cases that you championed - namely a simple,
> fixed, device such as a building wall clock that only ever cares about
> one time zone. Do we want all such devices to download the (potentially
> large) time zone data when the only thing that has changed is the version?

I would not expect to be using anything other than 'expand' for an
embedded device with only perhaps a one year look ahead so just perhaps
at most two changes of offset. This just requires that IF there is an
update changing one or more of these forthcoming events then IDEALLY the
ETag for the expand package would change, but as Paul indicates, the
packet may well be a smaller footprint than the ETag label if the range
of the expand perhaps changes daily.

Moving to larger packets. I think I understand part of the
miss-conception on the version model of accessing TZ data. Once a user
has an active sync with the live data, then calling 'list' with  a
'changedsince' of an earlier version will only return a set of TZid's?
The ones which have changed since the earlier version. If none of these
relate to TZid's that the client is currently using there is no need to
download anything, but I would expect the client to bring their local
cached copy up to date. This is where *I* would prefer to be using the
base TZ data since many TZid's these days are using the one master TZ
rule set so as you say 'There is no need to download a lot of TZ data
that has not changed'.

One only needs to read ALL the TZid's of a version if one does not have
a local copy already. Otherwise one reads only the elements needed to
fill the gaps in the version history. I mentioned in a previous post
that probably 90% of TZid data will never change, so every single
version will be the same. Using Paul's point about ETag, every single
version should have the same ETag as there is no point re-downloading.
The problem comes when a single change to say 'central european' generic
rule changes dozens of related TZid's. I would prefer that just the
generic rule changed, but for other users it may be better to flag each
TZid as changed?

Like Paul I also don't see the actual need for ETag since the version
mechanism only requires a single read of each new block of data even if
they are duplicate updates for several TZid's ... It's only the
'changedsince' check of list that needs to be repeated and that only
returns any content if there is a change?

One little sideline here. The race condition where the version changes
AFTER doing a list read but before actually reading the changed data is
covered since the data is read for the version being processed. 'latest'
would not be appropriate against a TZid when processing updates and only
really applies to the list operation.

-- 
Lester Caine - G8HFL
-----------------------------
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk
Rainbow Digital Media - http://rainbowdigitalmedia.co.uk