Re: [art] Artart last call review of draft-ietf-alto-performance-metrics-17

"Y. Richard Yang" <yry@cs.yale.edu> Thu, 21 October 2021 19:47 UTC

Return-Path: <yang.r.yang@gmail.com>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 243143A09F9; Thu, 21 Oct 2021 12:47:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.648
X-Spam-Level:
X-Spam-Status: No, score=-1.648 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 pZiNz_A08KF7; Thu, 21 Oct 2021 12:47:18 -0700 (PDT)
Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9504E3A09EF; Thu, 21 Oct 2021 12:47:18 -0700 (PDT)
Received: by mail-yb1-f171.google.com with SMTP id g6so1868405ybb.3; Thu, 21 Oct 2021 12:47:18 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5deYVXJJpBrZUoauHbAhe+vMZKl0kGjyi9PDbgHuzT4=; b=HZ0plnLu6GmqRmORQWuw+8/Bl/klxaB8inw0NPFPe9LWH/8359spn1skaVXBcD00cg b7TFQl7pk6ZSAv9djt2kVIFLthY4et5IIa2xOmS0/fUEiNhktmkWgru+HmBXCv1XxMRW G3wCbS4VhLra1fvrEjte04TUayxi1EPnwh7IK3bicoEJIOedMQKO4wcgtnaEYZXeZ10Y Hg9dTiFUv4vNQKxodGzgBZ4DpaiV84EiDtk9mHd9sA+dOVB99SXjqw0GvNSZNL051hnv wgA+pSPNgcUUEPk1zSWvl0ffSq9nfXK2ZAlcP2Eg4NjRtjA6kVQUrOy/Wb7roAqaFm5i TpGQ==
X-Gm-Message-State: AOAM530K2mqG19cYC/HXJrSEE7rZVi32U6P3pfGWXpQmQW0QHNgzCENJ TFkQg8RKqZOW5Ge37tkL0VFqJl/Pp3OL37wyJxK/8/stDUP/kw==
X-Google-Smtp-Source: ABdhPJzgltiQIi8Esi2fokfcsob7CyrYKDRyp6+zL4tyAHG4/XXN87UsixIW0BsqP+THbfm/WQY1192DG1nSQhhXjdU=
X-Received: by 2002:a25:6903:: with SMTP id e3mr4133685ybc.140.1634845637702; Thu, 21 Oct 2021 12:47:17 -0700 (PDT)
MIME-Version: 1.0
References: <163456572828.18299.141070520036627098@ietfa.amsl.com> <CANUuoLro9uNQ_WOXJ-2DuLpPrjZ+tA1vObZV6nprJWdoHo+_pg@mail.gmail.com> <YW5rfQ1B9N/hEiNI@hephaistos.amsuess.com>
In-Reply-To: <YW5rfQ1B9N/hEiNI@hephaistos.amsuess.com>
From: "Y. Richard Yang" <yry@cs.yale.edu>
Date: Thu, 21 Oct 2021 15:47:06 -0400
Message-ID: <CANUuoLqnfC0TF44UQXPBoPQDFEEnfmix=ZuMzrE5oyUwv8WXUw@mail.gmail.com>
To: Christian Amsüss <christian@amsuess.com>
Cc: art@ietf.org, IETF ALTO <alto@ietf.org>, draft-ietf-alto-performance-metrics.all@ietf.org, last-call@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007f775a05cee2293c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/MCeLBTlATPY6KyMER7dKVFGtbZs>
Subject: Re: [art] Artart last call review of draft-ietf-alto-performance-metrics-17
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Oct 2021 19:47:24 -0000

Hi Christian,

On Tue, Oct 19, 2021 at 2:54 AM Christian Amsüss <christian@amsuess.com>
wrote:

> Hello Richard,
>
> On Mon, Oct 18, 2021 at 03:43:50PM -0400, Y. Richard Yang wrote:
> > Good comment. The document gives the high-level grammar (1 line) at the
> > beginning of Sec. 2.2.
> > It looks that your suggestion is the write out the complete grammar
> upfront:
>
> I was not so much looking for the details of the terms "where <stat>
> MUST be one of the following" was fine) but for
>
> a) naming the formal language this is in. Reading, I've guessed that the
>   square brackets mean "optional" because I've seen that in DOS-time
>   documentation, and it looks formal, but does not declare a language.


>
  A formal language that could be used here and is common in RFCs would
>   be ABNF.
>
>
I see. See below, as we can address them together.


> b) the tying in of the output -- the the term "metric-identifier" is not
>   used anywhere else, and RFC7285 uses a CostMetric type in the
>   cost-metric field; I'd appreciate if these identifiers were somehow
>   linked.
>
  This would be trivial had ALTO used CDDL to describe its JSON, as
>   then there could be a line like `cost-metric //= metric-identifier`;
>   maybe the `object { ... }` notation has something similar?
>
> The object notation is higher granularity and hence cannot handle strings
structure.


>   RFC7285 generally does without constructing string identifier, so
>   there is no ABNF in there.
>
> Correct.


>   If you go with the suggested colon structuring and have text for that,
>   possibly there the optionality and string concatenation be described
>   in ABNF (or just in words with an example), and the need for a formal
>   language would go away here.
>
>
Good comment. How about the following:

Old Sec. 2.2
"Hence, each performance metric's identifier
   should indicate the statistic (i.e., an aggregation operation), to
   become
       <metric-identifier> ::= <metric-base-identifier> [ '-' <stat> ]
   where <stat> MUST be one of the following:
 "

=>

"Hence, this document extends the general US-ASCII alphanumeric cost metric
strings (formally specified as the CostMetric type in Section 10.6 of
[RFC7285]) as follows: A cost metric string (denoted <cost-metric>)
consists of a base metric identifier string (denoted
<metric-base-identifier>) followed by an optional statistics string
(denoted <stat>), connected by the ASCII character colon (':', U+003A), if
the statistics field exists. Examples of cost metric strings include
"delay-ow", "delay-ow:min", "delay-ow:p99".

> "...  Note that some systems use quantile, which is in the range [0, 1].
> > This document uses percentile to make the identifier easier to read. When
> > there is a more common form for a given percentile, it is RECOMMENDED
> that
> > the common form being used; that is, instead of p0, use min; instead of
> > p50, use median; instead of p100, use max".
>
> Fine with me.
>
>
Great.


> > > * Allowing decimals into the cost metric identifier introduces a dot
> which
> > >   is reserved as per RFC7285 Section 10.6.
> >
> > Yes. Correct. From the grammar above, we made sure that we would not
> > introduce a dot. We can add a sentence to point out that when choosing
> the
> > base, we should follow this. Should we do this?
>
> I think it'd be easiest (with the grammar or without) to to introduce
> the number as a nonnegative integer. (That'd allow dropping mentions of
> the minus and exp components).
>
> Agree.


> > >   A way out could be to formalize this structure and register the
> > >   metric-base-identifiers for use with and without a stat parameter
> > >   following the colon (instead of the dash).
> >
> > So the suggestion is that ":" as the consistent internal structure
> > separator. This is quite reasonable.
>
> Just beware that this is formally an update to the registry; not sure
> whether that incurs an "updates" to 7285.
>
>
No. This will not update 7285. Sec. 10.6 of RFC7285 requires registration
and we will do so.



> > >   A few words on which statistic can be used with which metric could
> > >   also help with bw-maxres. (What does bw-maxres-p50 mean, is it
> > >   meaningful at all?)
> >
> > Mathematically, any percentile of a set of a single value is the value
> > itself. But it is indeed a good idea to clarify it. We will add a
> sentence
> > at the end of 2.2
> >
> > => Note that although one can use generic statistics (i.e., any
> percentile
> > in [0, 100]) and multiple specifications may give the same value, it
> helps
> > to choose the more intuitive and robust definition. For example, when the
> > set is expected to be a single value. The max operator is more robust and
> > hence recommended.
>
> That sounds more confusing to me (the max operator ... so I should use
> bw-maxres-max?); maybe (if correct) something like
>
> | Note that unlike the other metrics, maxres is a single value and not
> | sampled over time. Thus, it MUST NOT be specialized with a stat
> | indicator, but is to be used in the base form.
>
> Sounds good to me. We will use your wording.


> > > * "Content-Length: TBA": Does this add value to the examples?
> >
> > We will add the final exact value when publishing, as it is part of HTTP
> > header.
>
> Sure it is part of the HTTP header, but so are many other headers
> (Accept-Content-Encoding, User-Agent, what so not). Accept and
> Content-Type add to the understanding, Content-Length will IMO be
> ignored by all readers anyway.
>
>
OK. We will add the final value now.


> > It is an example to illustrate both ipv4 and ipv6. If we do ipv4->ip4 and
> > ipv6-ipv6, we will need two examples, and it takes more space.
>
> Does it need examples of all of them? These are not unit tests, they are
> illustrative.
>
> Indeed. They are illustrative and we can drop the mix use to avoid
confusion.


> > > * "the -<percentile> component": "any 'stat' component"?
> >
> > Not sure what this is? Any more specific locator?
>
> 3.1.3
>
> > Very good comment! We have made the changes.  The newer version fixed
> this
> > issue.
> > Please see -18 which is just loaded today.
>
> Didn't see that at first ... something was changed in the uplaod process
> and now there's no HTML version any more?
>
>
We will upload a newer version to address all issues soon and then I will
debug to make sure that is an HTML version.

Thank you so much!
Richard



> BR
> c
>
> --
> To use raw power is to make yourself infinitely vulnerable to greater
> powers.
>   -- Bene Gesserit axiom
>