Re: Review of draft-toomim-httpbis-versions-00
Michael Toomim <toomim@gmail.com> Thu, 25 July 2024 10:09 UTC
Received: by ietfa.amsl.com (Postfix) id 9D4A3C1D531D; Thu, 25 Jul 2024 03:09:41 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9C7D9C1D52F7 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 03:09:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.856
X-Spam-Level:
X-Spam-Status: No, score=-7.856 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="aHdxu+H7"; dkim=pass (2048-bit key) header.d=w3.org header.b="U1gScmjm"; dkim=pass (2048-bit key) header.d=gmail.com header.b="eO8EM1c9"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ueUt-QS8Wg88 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 03:09:37 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0340FC1D6FB3 for <httpbisa-archive-bis2Juki@ietf.org>; Thu, 25 Jul 2024 03:09:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:In-Reply-To:References:To:From:MIME-Version:Date:Message-ID: Content-Type:Cc:Reply-To; bh=VYfQ8gjIbtFFKsnTGCk5VaZUta6lxezopxamA4xKMSM=; b= aHdxu+H7Kok5pziEESBra2NDfHYOonlhcgmmJnUFmAX5POTw6Fs/pVbSnXrHeprEZnLWRxrijEy75 Wmy2MS5oEnFWLh+CgBKPC17QYPXNJ5egauBP4dDDdGuqOZem7RVcHdpf8u+38inWzFfevn4vQBFlo AKgDaRpNmDwPROZRfVhXSe2/8ces8iRxoohiNjylI2ucaJFJ8oECtztDG2m4NPGEDawkE/Z4IBDQd C7sdmOKyYeEQyMSveeRDXPp3oQy+lEFXBJ9aOPFY++oJxZKtXCMSINGcJKyfKvt1TCWNMf5CcfkzG 4YT3KVou4nHkpgg0mLmZWZNyv9zlVMlLQA==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sWvPE-006fta-0C for ietf-http-wg-dist@listhub.w3.org; Thu, 25 Jul 2024 10:09:04 +0000
Resent-Date: Thu, 25 Jul 2024 10:09:04 +0000
Resent-Message-Id: <E1sWvPE-006fta-0C@mab.w3.org>
Received: from ip-10-0-0-224.ec2.internal ([10.0.0.224] helo=puck.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sWvPB-006fsX-2l for ietf-http-wg@listhub.w3.internal; Thu, 25 Jul 2024 10:09:01 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=In-Reply-To:References:To:From:Subject:MIME-Version:Date:Message-ID: Content-Type:Cc:Reply-To; bh=VYfQ8gjIbtFFKsnTGCk5VaZUta6lxezopxamA4xKMSM=; t=1721902141; x=1722766141; b=U1gScmjmn7lP1VS/x8P0zOAPy/uzuRdFjTmwC2DwPTST0L9 W33MEXnibahDDYz+0vmFwsUCkcM39TUwXYhsQlbJpfypibDy0/nZuGuiQnocD8iPmDQArQ5vvvT4y xY6qzkXtz3XSk1EZOJCS0tNNW9Wi6CAvHeu4sVC/6z2CW6JjS7//HX2iCJCQIe/bYrv/8PE+DIIZm qzP08mTqHxdISfh0VgBjN2KwAedM9PYVeRMy0F9iKxAQkQRWdjmcVZ/nhHoMrDuqI03k7ZAgT+5e3 asVeJyn7QJZOCsM6GETnwepvOgCOSF4/USfdHVQL4ymxfglYzz8Vbqf03Q8xAYaQ==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::635 as permitted sender) client-ip=2607:f8b0:4864:20::635; envelope-from=toomim@gmail.com; helo=mail-pl1-x635.google.com;
Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sWvPA-004NwL-3D for ietf-http-wg@w3.org; Thu, 25 Jul 2024 10:09:01 +0000
Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1fd70ba6a15so6329325ad.0 for <ietf-http-wg@w3.org>; Thu, 25 Jul 2024 03:09:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721902137; x=1722506937; darn=w3.org; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=VYfQ8gjIbtFFKsnTGCk5VaZUta6lxezopxamA4xKMSM=; b=eO8EM1c9qB7nJXT/2FcDrC3bLNhmAThUDrPxZHj71t+ywOXJ8ReCvN4LWr96x1/PpA 9XpS6ij1s4+lwPVDXYJzvfpdrPxNjQifmyrcMKQzrau24wOcGvA7QTF4iOsOZj/LdM97 lwQQuvPEr9r6R8dW5QEWR7ly7hSQbVnYNYhhsQA5G+DITbQDFyd+GALCxteNssOEBW+s ztDmN3ntoDb/PUJdVCoO0VuQ2O404sQzASod+XAadknjNOpgCYjyph00eoWuvsxn8fjq aVt2Qab/bFC3uP5Rauz6CxnMWkMNxFNPYNq2gnQLBZGU0ytW68fAfWaKOLlhkNKKN4gz S0vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721902137; x=1722506937; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=VYfQ8gjIbtFFKsnTGCk5VaZUta6lxezopxamA4xKMSM=; b=sUo9nsKYlsOwZBYbz9bvkEZyUG7uZjdTKmRlSWQ+deS51WPvfmRubsy0DBwwyZdwpT xX2Et+/qk8ni1qxr6+8GCmFNUczSBEPTe8PlCdPjWO6baBPpoCQsQOrTxl1Sw9OITN/j VDyqJvpzCFwE4iUtKNAZbahYDTDzWxj4ljxSJapU5HPKYRn/D8YmRw0Wmdz0MKYeSUTZ EnAKrNsaiYmpnYfD1tm8Gc9vx94QcC4nwsdmXEri+EEz1yts4UIzm7mIJh0jKfVHn7Cd mCyyLI6LzcLyNfo62uOc3fUlCWDVcV8zh6TBxrYDb407OXyss9yIX/aJfHPUbmhTQ605 biPQ==
X-Gm-Message-State: AOJu0YyTJY5oa2j8rZnxmZEB1kdcSWKDqM7t1j60vtQ/zta+iFEalReu 0twfoS+VhPZXex6//MqlEMzeSdecdCEFSQUZL1ljk7a8/7uNS0lA3V9g8dzqftU=
X-Google-Smtp-Source: AGHT+IGKHzeYXqg0HKpxZc4UsIbexi8UsEVazSR2u+g1sQFwap1io4r4a16/gObQhZMmNe0UMeqPfw==
X-Received: by 2002:a17:90b:4c50:b0:2c4:dfa6:df00 with SMTP id 98e67ed59e1d1-2cf2e9ab13dmr1418422a91.8.1721902136460; Thu, 25 Jul 2024 03:08:56 -0700 (PDT)
Received: from [172.31.7.130] ([207.194.231.35]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2cdb75fff4esm3194892a91.51.2024.07.25.03.08.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jul 2024 03:08:55 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------oe5oXmmGkKM303X0goq1zFG8"
Message-ID: <ff1dde83-51a7-4a8e-b505-46dd25ae4b21@gmail.com>
Date: Thu, 25 Jul 2024 03:08:55 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Michael Toomim <toomim@gmail.com>
To: HTTP Working Group <ietf-http-wg@w3.org>, Braid <braid-http@googlegroups.com>, Pierre Chapuis <catwellggl@gmail.com>
References: <172046173132.445281.15041630415895010148@dt-datatracker-5f88556585-j5r2h> <ff54cd4f-c30e-4447-8744-3297e53b74be@gmail.com> <e2986010-73db-4e85-8d7f-941c9037581d@gmail.com>
Content-Language: en-US
In-Reply-To: <e2986010-73db-4e85-8d7f-941c9037581d@gmail.com>
X-W3C-Hub-DKIM-Status: validation passed: (address=toomim@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sWvPA-004NwL-3D 40c199d0cac80f5bb9b04d6bd884bfe6
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Review of draft-toomim-httpbis-versions-00
Archived-At: <https://www.w3.org/mid/ff1dde83-51a7-4a8e-b505-46dd25ae4b21@gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52130
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
Pierre, thanks for these juicy thoughts! First, your work on HTTP Feeds looks very relevant to 104 Multiresponse idea (Section 2.4.4 <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions#section-2.4.4>) that is slated for a future spec. I'd love to hear your thoughts! As for vector clocks, what you have just suggested is very interesting— that is a way to express the same History, with a different Version-Type! (Albeit, one that bends the constraint that parents' cannot be ancestors of each other that we've been discussing elsewhere.) Although this contains the same history as the Vector-Clock example, I would not call these version IDs themselves Vector-Clocks. One cool thing about a Vector-Clock is that you can compare any two vector clocks in O(peers) time, without doing any O(n) traversals of the historical time DAG! If you have a small set of peers, this lets you compare order in O(1) time. This means you don't need to specify any parents at all in your messages. All ordering can be deduced from the Version header alone. That's kinda cool, for the systems that need that. Michael On 7/22/24 11:45 AM, Michael Toomim wrote: > > I'm also merging Pierre Chapuis' comments into this thread. Pierre is > cc'd, and we can respond here. > > ------------------ > -- Pierre Chapuis: -- > ------------------ > > Hello everyone, > > this email got me interested. I have been silently following the > progress on Braid for a while. I have worked with various data > replication and synchronization techniques (including CRDTs and others > <https://blog.separateconcerns.com/2017-05-07-itc.html>) and a HTTP > standard for resumable feeds is something I have wanted for a long > time, to support use cases similar to HTTP Feeds > <https://www.http-feeds.org>. > > Here is a small observation I have from reading the draft. In "4. > Version-Type Header", regarding the vector-clock type, did you > consider the alternative of just using parents instead of the complex > dedicated version format, where each Parent would be of the form > "agentidX: counterX"? If the data is modified, the Version response > header could potentially be used for the current "server" node. > > For instance, considering a CRDT implementation, if the "client" Bob > is at {alice: 2, bob: 2, charlie: 3} and the "server" Alice is at > {alice: 3, bob: 2, charlie: 4}, and Bob submits a new version, the > request headers could be: > > Version: "bob: 3" > Parents: "alice: 2", "bob: 2", "charlie: 3" > > and the response headers could would be: > > Parents: "alice: 3", "bob: 3" , "charlie: 4" > > Best, > > -- > Pierre Chapuis > > On 7/15/24 6:26 PM, Michael Toomim wrote: >> >> Hi everyone in HTTP! >> >> Last fall we solicited feedback on the Braid State Synchronization >> proposal [draft >> <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http-04>, >> slides >> <https://datatracker.ietf.org/meeting/118/materials/slides-118-httpbis-braid-http-add-synchronization-to-http-00>], >> which I'd summarize as: >> >> "We're enthusiastic about the general work, but the proposal is >> too high-level. Break the spec up into multiple independent >> specs, and work bottom-up. Focus on concrete 'bits-on-the-wire'." >> >> So I'm breaking the spec up, and have drafted up the first chunk for >> you. I would very much like your review on: >> >> *Versioning of HTTP Resources* >> draft-toomim-httpbis-versions >> https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions-00 >> >> Versioning is necessary for state synchronization—and occurs in a >> range of HTTP systems: >> >> * Caching >> * Archiving >> * Version Control >> * Collaborative Editing >> >> Today, HTTP has resource versions in the Last-Modified and ETag >> headers, and sometimes embeds versions in URLs, like with WebDAV. >> Each of these options serves some needs, but also has specific >> limitations. An improved general approach is proposed, which provides >> new features, that could enable cool new applications, such as >> incrementally-updated RSS feeds, and could simplify existing >> specifications, such as resumeable uploads, and history compression >> in OT/CRDT algorithms. >> >> I would love to know if people find this work interesting. I think we >> could improve performance, interoperability, and be one step closer >> to having Google Docs power within HTTP URLs. >> >> Michael >> >> -------- Forwarded Message -------- >> Subject: New Version Notification for >> draft-toomim-httpbis-versions-00.txt >> Date: Mon, 08 Jul 2024 11:02:11 -0700 >> From: internet-drafts@ietf.org >> To: Michael Toomim <toomim@gmail.com> >> >> >> >> A new version of Internet-Draft draft-toomim-httpbis-versions-00.txt >> has been >> successfully submitted by Michael Toomim and posted to the >> IETF repository. >> >> Name: draft-toomim-httpbis-versions >> Revision: 00 >> Title: HTTP Resource Versioning >> Date: 2024-07-08 >> Group: Individual Submission >> Pages: 19 >> URL: https://www.ietf.org/archive/id/draft-toomim-httpbis-versions-00.txt >> Status: https://datatracker.ietf.org/doc/draft-toomim-httpbis-versions/ >> HTMLized: >> https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions >> >> >> Abstract: >> >> HTTP resources change over time. Each change to a resource creates a >> new "version" of its state. HTTP systems often need a way to >> identify, read, write, navigate, and/or merge these versions, in >> order to implement cache consistency, create history archives, settle >> race conditions, request incremental updates to resources, interpret >> incremental updates to versions, or implement distributed >> collaborative editing algorithms. >> >> This document analyzes existing methods of versioning in HTTP, >> highlights limitations, and sketches a more general versioning >> approach that can enable new use-cases for HTTP. >> >> >> >> The IETF Secretariat >> >>
- Fwd: New Version Notification for draft-toomim-ht… Michael Toomim
- Re: New Version Notification for draft-toomim-htt… Rory Hewitt
- Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: New Version Notification for draft-toomim-htt… Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Rory Hewitt
- Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Marius Kleidl
- Re: Review of draft-toomim-httpbis-versions-00 Ben Schwartz
- Re: New Version Notification for draft-toomim-htt… Julian Reschke
- Re: New Version Notification for draft-toomim-htt… Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Fwd: New Version Notification for draft-toomi… Julian Reschke