[DNSOP] Re: Comments on "Service Binding Mapping for Service Levels"

Gautam Akiwate <gakiwate@apple.com> Mon, 02 June 2025 22:56 UTC

Return-Path: <gakiwate@apple.com>
X-Original-To: dnsop@mail2.ietf.org
Delivered-To: dnsop@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 015332FF6B1A for <dnsop@mail2.ietf.org>; Mon, 2 Jun 2025 15:56:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TRVDgycmilFh for <dnsop@mail2.ietf.org>; Mon, 2 Jun 2025 15:56:32 -0700 (PDT)
Received: from rn-mx04.apple.com (rn-mx04.apple.com [17.132.108.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 3DB1F2FF6AFC for <dnsop@ietf.org>; Mon, 2 Jun 2025 15:56:32 -0700 (PDT)
Received: from mr55p01nt-mtap02.apple.com (mr55p01nt-mtap02.apple.com [10.170.185.211]) by mr55p01nt-mxp04.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPS id <0SX92530L3Q7L320@mr55p01nt-mxp04.apple.com> for dnsop@ietf.org; Mon, 02 Jun 2025 22:56:31 +0000 (GMT)
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-02_08,2025-06-02_01,2025-03-28_01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=cc : content-type : date : from : in-reply-to : message-id : mime-version : references : subject : to; s=20180706; bh=q+2ZNwKCMcPOnfT71OWofLDQHVDUH8zeDTfQ89on9A4=; b=IE0NJ86ShVmBr8a+M7Z5rAmnMvFFqpQU+80drJUFiuf7Txwbb5Pn+O+urdxVW7l+zinx UN6WKiFB+tJZcehcAi/ZdY0t4Avv4SMR8dqlnByqiXFal1O8E8BW3Spt3THLfc9vQtfq XCRvyCc5qJMzJ0psbu2feb/ZFixFeHxqPSbzZguPSrwSnGjbEzd77K63/xHwJjVpL5rX FhWkr4gn6FzvYaAJAoFrqUn6fyl3dA7gjqAz27EP5BC4MqhXUWe7qZE74OHpHWg5FeX6 2/YGg4qMJqtcSr/4lFl8tpJefGczUiqhhckMsPbXS+4a1ip2HzhKGWj+taaRWcTOqOTX sA==
Received: from mr55p01nt-mmpp06.apple.com (mr55p01nt-mmpp06.apple.com [10.170.185.198]) by mr55p01nt-mtap02.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPS id <0SX91CLQY3Q66VG0@mr55p01nt-mtap02.apple.com>; Mon, 02 Jun 2025 22:56:30 +0000 (GMT)
Received: from process_milters-daemon.mr55p01nt-mmpp06.apple.com by mr55p01nt-mmpp06.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) id <0SX909D0038ZWW00@mr55p01nt-mmpp06.apple.com>; Mon, 02 Jun 2025 22:56:30 +0000 (GMT)
X-Va-A:
X-Va-T-CD: d4f23a1e11f32e23b0912230a807aa20
X-Va-E-CD: 923dd8637db8e1db8309d94d81a35e01
X-Va-R-CD: c3550bf3d015fc0cf117e119b38252a7
X-Va-ID: 9f8dff8a-501f-404e-9905-e26dcbda2307
X-Va-CD: 0
X-V-A:
X-V-T-CD: d4f23a1e11f32e23b0912230a807aa20
X-V-E-CD: 923dd8637db8e1db8309d94d81a35e01
X-V-R-CD: c3550bf3d015fc0cf117e119b38252a7
X-V-ID: 665dc1e1-5209-42ae-acf1-bf99ba38c25c
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-02_08,2025-06-02_01,2025-03-28_01
Received: from smtpclient.apple (unknown [17.192.170.163]) by mr55p01nt-mmpp06.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPSA id <0SX909Y3G3Q5Y400@mr55p01nt-mmpp06.apple.com>; Mon, 02 Jun 2025 22:56:30 +0000 (GMT)
From: Gautam Akiwate <gakiwate@apple.com>
Message-id: <1ABE160C-04DB-4A2C-B1F6-B95E9D7DEAF6@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_878AC57A-862C-4E51-9E1E-370C98DD0689"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3852.100.1\))
Date: Mon, 02 Jun 2025 15:56:19 -0700
In-reply-to: <SA1PR15MB437085A7C7879C5F1B3287DBB362A@SA1PR15MB4370.namprd15.prod.outlook.com>
To: Ben Schwartz <bemasc=40meta.com@dmarc.ietf.org>
References: <SA1PR15MB4370B576D2D88F883391CB74B3D32@SA1PR15MB4370.namprd15.prod.outlook.com> <928E07C5-2711-4DFE-BF1E-EFEF2EA7001A@apple.com> <SA1PR15MB437050F729FCE89EBC8C4DF6B366A@SA1PR15MB4370.namprd15.prod.outlook.com> <CC5EF9FC-A2FD-4E0C-93F5-4E94CBEFD9DE@apple.com> <SA1PR15MB437085A7C7879C5F1B3287DBB362A@SA1PR15MB4370.namprd15.prod.outlook.com>
X-Mailer: Apple Mail (2.3852.100.1)
Message-ID-Hash: ZDEZWJ74RK63PRBP273XQOMVJLUTKMFD
X-Message-ID-Hash: ZDEZWJ74RK63PRBP273XQOMVJLUTKMFD
X-MailFrom: gakiwate@apple.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dnsop.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Gautam Akiwate <gakiwate=40apple.com@dmarc.ietf.org>, DNSOP Working Group <dnsop@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [DNSOP] Re: Comments on "Service Binding Mapping for Service Levels"
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/Jc-BvB0lteLoly9AOPyh_ehterQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Owner: <mailto:dnsop-owner@ietf.org>
List-Post: <mailto:dnsop@ietf.org>
List-Subscribe: <mailto:dnsop-join@ietf.org>
List-Unsubscribe: <mailto:dnsop-leave@ietf.org>


> On Jun 2, 2025, at 7:20 AM, Ben Schwartz <bemasc=40meta.com@dmarc.ietf.org> wrote:
> 
> > From: Gautam Akiwate <gakiwate=40apple.com@dmarc.ietf.org <mailto:gakiwate=40apple.com@dmarc.ietf.org>>
> 
> ...
> 
> > For instance, consider an application like weather that fetches data in the background but then when in the foreground wants to use more optimal end points. The application might want to use a slower server to save on costs for background traffic and reduce the loads and costs on the interactive edge servers.
> 
> This seems like a good example that would improve the draft.  It also demonstrates that the primary intended use case is one in which the client and server are developed by a single entity, and the standard allows the OS to offer a convenience that make implementation easier for this entity.

Ack.

> 
> > There is some potential confusion here. The three classes were supposed to map to three performance profiles for servers. A cost-effective server in a data center (background), an edge location (interactive), and a performant edge cache at the ISP edge cache perhaps (real-time). The many different traffic classes should map to one of these three different profiles. For instance, bestEffort and responsiveData could map to the interactive server class. Do you think calling the three classes something other than background, interactive, and real-time might reduce confusion?
> 
> I don't think the proposed "3 fixed classes" is a good framework.
> 
> In the primary use case, it is the OS that must choose among these options, so it might be more sensible for the distinction to match something known to the OS, like "onscreen/offscreen/scheduled".  Otherwise the OS must perform a (potentially lossy) mapping to service levels, or the client must configure such a mapping.
> 
> Different OSes may have different concepts for app states, etc.  Also, some apps may wish to use this mechanism in ways that involve details of their server infrastructure.  To support the broadest use, I would recommend an IANA registry with a Specification Required range and a Private Use range, plus edge-case semantics like "0 = default" and "255 = unknown".

Currently, as defined in the draft the server can publish multiple SVCB RRs (each with a different “sla” value) with the OS filtering down to the correct SVCB RR based on the request service level. With the 0-255 range, we are implicitly asking the OS to go through ~250 SVCB RRs if we expect a server to use the entire range for different OSes etc.

Instead of expanding the range that drastically, we can get rid of the labels (“background” etc) and just have a numeric range with the lower numbers indicating lower cost and maybe lower performance. We then leave the specifics of how a client can request a specific service level for its network request to the OS. As an example, we can state how traffic classes can be used by the OS to map the request appropriately with the default going to the highest defined value.
 
> 
> Also, the draft's use of "realtime" does not match any CDN architecture I've encountered.

Yeah. It was us adding a third class to accommodate for future. But the background vs not background would be the primary use case. If anything, this fact seems to be an argument for just two classes for now? 

Overall, I do not feel comfortable having a large range of values. Without corresponding server infrastructure with a significantly different cost and performance profile to map to, I fear we end up re-inventing traffic classes.

> ...
> 
> > While it is likely that the choice of server is co-related with latency it is not always. The choice on the server side will primarily driven by cost.
> 
> Yes, but suppose the "less expensive" option also has lower latency for a particular user (e.g. a user who happens to be near the data center).  Should that user choose the higher-cost option?  If not, it might be better to signal the cost hierarchy and let the client use latency to find the Pareto-optimal server.

Do you think going to be a numeric range combined with leaving the specifics to the OS of how a client can request a specific service level achieve get to this? If a client/OS wanted to support this they could allow an application to mark their requests accordingly? 
> 
> > Also, we do not currently connection pool requests to the same origin with different traffic classes.
> 
> In general, anything that impairs connection pooling creates a significant performance and cost risk.  The same applies to cache hit rates.  As a result, dividing connections into separate tiers in this way is likely to increase both cost and latency in many use cases.  Some warning text may be appropriate.

Ack.
> 
> --Ben
> _______________________________________________
> DNSOP mailing list -- dnsop@ietf.org <mailto:dnsop@ietf.org>
> To unsubscribe send an email to dnsop-leave@ietf.org <mailto:dnsop-leave@ietf.org>