[Moq] Re: Simplifying the Object ID Model and caching

Luke Curley <kixelated@gmail.com> Thu, 22 October 2026 20:49 UTC

Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 956FF46 for <moq@ietf.org>; Thu, 22 Oct 2026 20:49:28 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=BM2ybmiQ; spf=pass (mx.ietf.org: domain of kixelated@gmail.com designates 2a00:1450:4864:20::12a as permitted sender) smtp.mailfrom=kixelated@gmail.com; dmarc=pass (policy=none) header.from=gmail.com; arc=pass ("google.com:s=arc-20260327:i=1")
Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-5bfa7c09c9eso107119e87.2 for <moq@ietf.org>; Thu, 22 Oct 2026 13:49:28 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1792702161; cv=none; d=google.com; s=arc-20260327; b=r/DDQ58f93EZV964ED+SRhk15VovAucNxhiqor8G8/k5KjcJ6lDy2BL889WGUYUTkg EmaO8M8bs3HZebUnKlecY/p88HKqnVEdWg66C54z++rTDu9ghXQc+0m6Mq/Ygh+kDPo5 0/KI7CDBrjI+8Q2ruAqp804wYeY87PhHFZ/ecMXQ1MTcm1Wyj+YMOrlgOM+ir3F+OOxJ umMILRVFpVAPDNfiUvFbRl/rSS/6xA6vyllnW+HMGPcB0HPNeM3Nb4/uWWieqkcxLd0V BhdCUIq3E5xHutOM7KEJtOLoDYri4y5GvCRfHCB+nwAUAJ06w5esgZtWWn9A25KWj5NG NilA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=t6shfoTIzSrd4qR2fHJ+p2qdTXAn3eduOfz8wpXfhLU=; fh=U9gKg4U6VY2QWm8nDWfZLUkA3skv3m2Fts9bo8b9QaY=; b=dXlSafqtdLZ2NbXv4wIf112L3wsYS3/NP9CybsczXSJ6rALzwTe1iPp0A+5wxzhjcJ dseh/WKyL79CMozzzSHTulbeCEsk/MWbOlIvSAyLBGhuLSO7pMLjTUFhjJffCMXQK1PG pjTGg6kbnfgW3Fdh+vcoqW+jPMHBagOu3NSxLIshm5DSz+LhquXBV2v5ZzyQ1YupzCGT aTWRsQ852TPYCRTeGYtG5TVRcBIgcAD0QwNXKYnZ+CP2Vo7jBnNTG8WjlOq10BKNSAS3 WH7nMjWJU/NTXXwNP+hOan5amp6r6bX48COvBo+aK5lhOUDTm901ZbYoOHg9sFoyhH0O H6zQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792702161; x=1793306961; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=t6shfoTIzSrd4qR2fHJ+p2qdTXAn3eduOfz8wpXfhLU=; b=BM2ybmiQyVSGnvTosNgfUa/9i9c6lD35lnqYVh+shBTYV9C4nJYfogzOX/oyUirkXA Jcx1MDO/ee2Y2dxwGjuxda9r7wja3PisFfufTePk/CqJF9lMS6NRx4lnFd2+63FAARzq sCgqFIqPEuHuLJoBKHowCfjMbbNeOC8sSSXqAjVWQQ488nnm6w+5lR+tPp5tA9B1xLh+ ZZrd7L3BuvKAV61u6jU53LwtM5/zDdmirYwLd+Le6RGGvILeTACEgX8kW74oQYf2oaq7 1YvCyM5lL8qYJeR8VO0eQ0ozyV9F+0hkXAZnvcXSAKgMDEwUmQC1VyNrQfiGNMcs03AF jdsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792702161; x=1793306961; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=t6shfoTIzSrd4qR2fHJ+p2qdTXAn3eduOfz8wpXfhLU=; b=PuG5+sSWjDGLs8+uw9RT0KL7W1egOtvW0VIPb+axi0gXFUp4mLRL3DkmKOLZKL8jXH qGCssb938Z9UhRIMAfV0JIyrVHZUqn/vz+z2yMiLTboCAHV4DZGhDYCJFkDLhI48KyHf efZvZdfDDjVQFuYFrUyhF/7ReoN3+TOI2ZerG71VgcOmYEjfbPVUWecbzgnVVMiZFwCo Iu1CJiO0QKgL5i86fw7SvV8qDkBcjmex8OyT9+VIM7a7t1rwEAFfuyAdkrQ1GJ/YEjvx Ezb6G1GE5Td8jIG9cGW8jWbz+681IfuIF/NaYiXMh/O99YcUMqAEb2NngTIZMZM5yejX oldQ==
X-Forwarded-Encrypted: i=1; AKwUvBw8c/55Vo+rp/5VqrHxEoZgHa6ROKlUqrnuHOKuQwuICSek8eocYcUETbuG9cFCOzM9TQo=@ietf.org
X-Gm-Message-State: AFq9FYKWI6qX9HtT8rBEv27SNHqLTstpWCV7e0dD/e/gxAuiPhPYJcrO MuhkKQRLEqLcxSQF/gWZPTh0G72f/e/E+BbA2g8Xk45iKXpj3beVS2CmiWt+CHbW2G2Vw0MLWFa 9rOhmwIQtnpoP2H3mhiZnGmX4v0OfRlk=
X-Gm-Gg: AYBFou07nZ7neGm+Fhj5tyKzIkdoS1KH8YnCBWGMuoTH64yY39AjiCxksn28HwVINDa mzheh1Hj2hzPVVdqbolpfNPD1SgtDMpI89Y3n/ctiFx8hoK7O+LDVUlpkiIsCwcUu3r1jk5eWe5 4DxOkPt9Mt+nTvfGHlTQf1Lzckbx50+Gk9zlW6qjV30JjqRR8kzEAzyAGJr+iaHbetdIQiy+aNH 2sJxi2654BAZt4hzaq18x34O7C+0om+hvYwV7PvjCth2IZkuLaAq1pVQ8h2YsZs5Omdk6m6qwjB EvvnpoGoi1DYnUklkwyLFW3hCCANVGJ4SxeBYdwqV25qstGmxm93uC268+5+UWaCLhBaOyhh2Ry Uva8H09gtjEwhg/JpV786rxAu2g2L00znK/i01ajDv6f9KcnOxiSsGZHoSfJ78CwRhvuXqdSJxy MbiMWI9klNRySlFA==
X-Received: by 2002:ac2:4f03:0:b0:5bf:a490:4e8e with SMTP id 2adb3069b0e04-5bfb0a49853mr28098e87.66.1792702160329; Thu, 22 Oct 2026 13:49:20 -0700 (PDT)
MIME-Version: 1.0
References: <CAKcm_gPVnSLx=3eTzqU6mkCHTTMZx3Px_RyKB+RgqdZ5oRyMEg@mail.gmail.com> <CAKXiRhMg5PG1Ac-LCfCA+LadiRbUtKEMsrssKQudA_KkeN1WLg@mail.gmail.com> <a521293c-9454-4023-bb24-c6bf98c263b5@huitema.net> <CAKXiRhPv3irQ5HtpngVnBYXLtu3eKbC_NZ7de9uk5AGBDEm8DQ@mail.gmail.com> <DS0PR11MB81817F1DC0672BAA9326CA5AB4652@DS0PR11MB8181.namprd11.prod.outlook.com> <CAKcm_gOJeQRH3P7gQ0qJ=234AitKC-iX48s1QgfwXo3Xf=k_iQ@mail.gmail.com>
In-Reply-To: <CAKcm_gOJeQRH3P7gQ0qJ=234AitKC-iX48s1QgfwXo3Xf=k_iQ@mail.gmail.com>
From: Luke Curley <kixelated@gmail.com>
Date: Thu, 22 Oct 2026 13:49:09 -0700
X-Gm-Features: AclHuK9jZvXBLq8YnGl-T046G7gxZIREGc-w3orKpEa5icHvlPAsikkLkFQYMVI
Message-ID: <CAHVo=Z=3e8VKrK7exaHHHndgYZ2ZFWEbnPT0LKz0NJQx0u_uCQ@mail.gmail.com>
To: Ian Swett <ianswett@google.com>
Content-Type: multipart/alternative; boundary="000000000000745ec5065e73fff4"
X-Spamd-Bar: ----------------------------
Message-ID-Hash: HUZCZG5SGUYH6PKTG4OXR464UKGEMUX6
X-Message-ID-Hash: HUZCZG5SGUYH6PKTG4OXR464UKGEMUX6
X-MailFrom: kixelated@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "Mo Zanaty (mzanaty)" <mzanaty@cisco.com>, Aman Sharma <amsharma@meta.com>, Christian Huitema <huitema@huitema.net>, MOQ Mailing List <moq@ietf.org>
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Moq] Re: Simplifying the Object ID Model and caching
List-Id: Media over QUIC <moq.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/t6YpcqDuUvEjNSqTmMACqjcCwHY>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Owner: <mailto:moq-owner@ietf.org>
List-Post: <mailto:moq@ietf.org>
List-Subscribe: <mailto:moq-join@ietf.org>
List-Unsubscribe: <mailto:moq-leave@ietf.org>

Yeah, Prior Object ID helps a lot in the usual case. It gives the relay
enough information to know that 0..N has been delivered within a group,
unless there's loss and multiple sub-groups.

I strongly recommend making Prior Object ID required. However, this would
break disjoint multi-publisher (two publishers, interleaved objects in the
same group). That use-case is completely broken anyway for FETCH (and thus
FILL).

Also, timestamps in moq-transport are a great replacement for Object ID
gaps. Each object in a sub-group would be +1, while the timestamp can jump
forward (or backward) an arbitrary amount.

On Thu, Oct 22, 2026 at 12:53 PM Ian Swett <ianswett=
40google.com@dmarc.ietf.org> wrote:

> Yes, Prior Object ID Gap can help, though I'm unsure how to make it
> required in practice?  I guess a Subscriber to an OP could declare a Track
> Malformed if it didn't include the Prior Object ID gaps?
>
> Unless we did something like what Luke suggested, the cache will have gaps
> and Relays will have to deal with that, but sequential IDs (or required
> Prior Object ID Gaps) do make the problem easier.
>
> Ian
>
> On Thu, Oct 22, 2026 at 9:03 AM Mo Zanaty (mzanaty) <mzanaty@cisco.com>
> wrote:
>
>> Prior Object ID Gap already handles the case where the original publisher
>> made gaps. Maybe just make it required? But I don’t see how eliminating OP
>> gaps helps relays or end subscribers, since they must still deal with
>> non-OP gaps in subscribe and fetch, which seems like the dominant case.
>>
>> If the problem is excessive relay upstream actions on a fragmented cache,
>> can we just punt this downstream? If a fetch spans cached and unknown
>> objects, deliver the cached and mark the rest unknown in the response. If
>> it only spans unknown, only then request upstream.
>>
>> Cheers,
>> Mo
>>
>>
>> ------------------------------
>> *From:* Aman Sharma <amsharma=40meta.com@dmarc.ietf.org>
>> *Sent:* Wednesday, 21 October 2026 23:02:02
>> *To:* Christian Huitema <huitema@huitema.net>
>> *Cc:* Ian Swett <ianswett@google.com>; MOQ Mailing List <moq@ietf.org>
>> *Subject:* [Moq] Re: Simplifying the Object ID Model and caching
>>
>> I think Ian’s proposal eliminates fetches needed merely to resolve
>> intentionally unused ID slots, but you're right that fetches may still be
>> needed to recover material omitted because of congestion (e.g. timeout
>> cancellation, datagram dropping, etc).
>>
>> On Wed, Oct 21, 2026 at 7:41 PM Christian Huitema <huitema@huitema.net>
>> wrote:
>>
>>
>>
>> What happens if a relay is skipping some subsets as a response to
>> congestion?
>>
>> On 10/21/2026 7:36 PM, Aman Sharma wrote:
>> >
>> > I agree that this would be a simplification, and would allow us to
>> > remove the Prior Object ID Gap property. Any implementation relying on
>> > non-contiguous object IDs could trivially define its own parameter to
>> > convey the information previously conveyed through object IDs.
>> >
>> >
>> >
>> > On Wed, Oct 21, 2026 at 7:00 PM Ian Swett
>> > <ianswett=40google.com@dmarc.ietf.org> wrote:
>> >
>> >     I believe all members of this WG can agree that the MoQ Object
>> >     Model is too complex. In the past, we've been unable to simplify
>> >     it, but I believe there is a simplification that improves caching
>> >     and is acceptable. That's sequentially
>> >     I believe all members of this WG can agree that the MoQ Object
>> >     Model is too complex. In the past, we've been unable to simplify
>> >     it, but I believe there is a simplification that improves caching
>> >     and is acceptable.
>> >
>> >     That's sequentially increasing Object IDs beginning at 0 (ie: 0,
>> >     1, 2, 3, etc).  This makes it trivial to know when all the Objects
>> >     in a Group have been received once the End of Group is received,
>> >     and it avoids unnecessary Fetches upstream when a Track is
>> >     initially Subscribe-delivered and then cached.
>> >
>> >     I realize there is an attraction to ascribing a meaning to the
>> >     Object ID (e.g., using it for the timestamp), but the byte savings
>> >     are minimal at best and this makes MoQ much more brittle. Don't
>> >     think I haven't tried.
>> >
>> >     Are there people for whom this would break their usecase and can
>> >     they explain why?
>> >
>> >     Ian
>> >     _______________________________________________
>> >     Moq mailing list -- moq@ietf.org
>> >     To unsubscribe send an email to moq-leave@ietf.org
>> >
>> >
>> > _______________________________________________
>> > Moq mailing list -- moq@ietf.org
>> > To unsubscribe send an email to moq-leave@ietf.org
>>
>> _______________________________________________
> Moq mailing list -- moq@ietf.org
> To unsubscribe send an email to moq-leave@ietf.org
>