[alto] Review of cost-calendar-11

Vijay Gurbani <vijay.gurbani@gmail.com> Mon, 25 March 2019 19:43 UTC

Return-Path: <vijay.gurbani@gmail.com>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 76532120033; Mon, 25 Mar 2019 12:43:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 d2cMwAW8M9Xt; Mon, 25 Mar 2019 12:43:10 -0700 (PDT)
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) (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 EA47E120020; Mon, 25 Mar 2019 12:43:06 -0700 (PDT)
Received: by mail-ed1-x532.google.com with SMTP id e4so8621416edi.3; Mon, 25 Mar 2019 12:43:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=50qRfl8i6cn5PVortIfMtcnXU5QxrKvYkiG0yyEORrY=; b=ModPGQGY15m1tUViVbAkpT8htM3/vekcuVLoEGpWQgXpI/Ae6MEPBg17p1BoEFqXM3 BZvwHy6DmlllTaZ6uBUawHN3EFFNe+YlIoLI4JWXYIP4LiwSCFDsk5LxSb6LgI0DV7Ha 6+22hXoP/+zB/YjrTNNYb2yw0o9Zi08I2p6YsJenVO5X21ZKrK7o+dCD80cK2k8lxaaa cePLd6eEzhwS70+8o0tVueOB5pHAmNAAZQ799EsPJLdNjBDlt6m9rNr2371MC+hcRCW5 RUNbhiAQ1A7FTxR68LCnbZiIKDW3YeTbuts17XVayX5RMHUOEHWbKlYWVFNoAYVxA1M3 d/kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=50qRfl8i6cn5PVortIfMtcnXU5QxrKvYkiG0yyEORrY=; b=Pqu8Cf3bdgbw94ADk6kUACqMbntJQmIVGbRshHZGkD/HJgZDWqpahjKPdXBcGhmwir jom8Ka/WBaU3q4lxJSLWvTgvzZPtTjGCD5YWSA5NuM8XkZEPNz2GR9xthnhL4pXDZroP pysE85RKNpm2HgpaANKjqRjTLQlpF4QNGnVw7HVS6uR8aoNpLwA5JH9eawkINBza0UIv jBJzq/Y+ICJrsChez+W0c2dz1IndNlCFwn/YBySUslvVMFt9WSSihifvmYF7CQme6N1u BpHIA7yW1mJfQf55UpqE/Of/U0/oE0Q76LEugQsQyg04hgLJx3Wu/8Kp8Thg7NdrXR/R VbKg==
X-Gm-Message-State: APjAAAXnXFFhHGw+eLm4c6JLOQoFKCJULe1AAr+4Z0d8ADKlXnk2BmLV 29gXYq5Jz+KF/I7X/OoBEjcxPkeLpe34itEeAXqa4vN0+8I=
X-Google-Smtp-Source: APXvYqxR9zSIGQw4HTJbslbCG70jAFDNzAQu4FL7xvjhgIRmBQgbgZzN4UHS/9YR1C99L7E/2Sa9jnwy8MHNOfZl5WE=
X-Received: by 2002:a50:97b8:: with SMTP id e53mr16197261edb.4.1553542985023; Mon, 25 Mar 2019 12:43:05 -0700 (PDT)
MIME-Version: 1.0
From: Vijay Gurbani <vijay.gurbani@gmail.com>
Date: Mon, 25 Mar 2019 14:44:05 -0500
Message-ID: <CAMMTW_KZwvRyhhQV+9yv+805M6DoYdFMFPOOVKm8q+azMGU7ZA@mail.gmail.com>
To: IETF ALTO <alto@ietf.org>, draft-ietf-alto-cost-calendar@ietf.org
Content-Type: multipart/alternative; boundary="000000000000c408890584f06966"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/SC-frbULg3arJYJxTmVTO0ZYIbw>
Subject: [alto] Review of cost-calendar-11
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Mar 2019 19:43:14 -0000

The cost-calendar draft is ready.  It is an excellent piece of work by the
authors who are long standing ALTO contributors; the draft is is applicable
and of interest to many ALTO deployments (and this should be highlighted; I
provide the Unicorn link to highlight this in my  feedback below, but
please provide more).  The one feedback I have about the draft is the need
for a thorough edit session to ensure grammar and consistency in the
document as well as to ensure that implementations deal with as less
ambiguity as possible when following the protocol extension.  I provide
some examples of where the text can be improved below.

- General:
 a) Is it Cost Calendars (plural) or Cost Calendar (singular)?  You use
both in
 the text; best to ensure that only one representation is being used.

 b) There are a number of run-on sentences (see first, second and third
 paragraphs in S3.1; such run-on sentences make it very hard to understand
what
 is being asked of the implementors, and as a result will lead to an
 implementation that is ambiguous at best and full of bugs in the worst
case.
 Such sentences must be scrubbed appropriately before publishing as these
 outline normative behaviour).

 Getting the right text to describe the processing of cost-calendar is not
easy,
 I will be the first to admit.  Perhaps an editor can improve the text to
 eliminate such run-on sentences.

 c) In many HTTP requests and responses (see for example the ALTO POST
request
 on page 19), a content length is specified.  In the example on page 19,
the C-L
 is 815.  However, how was this sum arrived at?  The body of the response
 contains a lot of elucidations ("v1, v2, ..., v12"), for example.  Does
the 815
 bytes include these elucidations ("...")?  My advice would be to be as
 realistic as possible and remove these elucidations, put sample values in
the
 response and calculate the C-L.  Yes, more work, but better product.

Document-order specific comments follow.

- Abstract:
  a) s/service such that/service so that/
  b) s/ALTO Cost Calendars/ALTO Cost Calendar/

- S1, para 1: s/needing to/that need to/

- S1, para 2: The larger point you are making in the second half of the
  paragraph is that due to the fact that ALTO does not provide real time
network
  metrics, the applications essentially have to figure out what the cost of
  doing business will be at some later time, a proposition that is
sub-optimal
  since the application has no idea of network usage at some future time.
This
  salient point is not quite captured.  Perhaps the text below may help?
  (Please feel free to edit as needed.)  Also, you have the wrong reference
to
  ALTO requirements document in your current text; that is fixed below as
well.

  OLD:
  ALTO intentionally avoids provisioning real-time information as explained
in
  the ALTO Problem Statement [RFC5693] and ALTO Requirements [RFC5693].
Thus
  the current Cost Map and Endpoint Cost Service are providing, for a given
Cost
  Type, exactly one path cost value.  Applications have to query one of
these
  two services to retrieve the currently valid cost values.  They,
therefore,
  need to plan their ALTO information requests according to their own
estimation
  of the frequency of cost value change.

  With [RFC7285], an ALTO client should interpret the returned costs as
those at
  the query moment.  However, Network costs can fluctuate, e.g., due to
diurnal
  patterns of traffic demand or planned events such as network maintenance,
  holidays or highly publicized events.  Providing network costs for only
the
  current time thus may not be sufficient, in particular for applications
that
  can schedule their traffic in a span of time, for example by deferring
  backups or other background traffic to off-peak hours.

  NEW:
  For the reasons outlined in the ALTO problem statement [RFC5693] and
  requirement AR-14 [RFC6708], ALTO does not disseminate network metrics
that
  change frequently.  In a network, the costs can fluctuate for many reasons
  having to do with instantaneous traffic load or due to diurnal patterns of
  traffic demand or planned events such as network maintenance, holidays or
  highly publicized events.  Thus, an ALTO application wishing to use the
Cost
  Map and Endpoint Cost Service at some future time will have to estimate
the
  state of the network at that time, a process that is, at best, fragile and
  brittle since the application does not have any visibility into the state
of
  the network.  The need of such future scheduling of large scale traffic
that
  can be addressed by the ALTO protocol is motivated by Unicorn, a unified
  resource orchestration framework for multi-domain, geo-distributed data
  analytics [draft-xiang-alto-multidomain-analytics].

- S2, para 2: s/crowded events/expected spike in traffic due to crowd
gathering
  (concerts, sports, etc.)/

- S2.1, para 1:
  a) s/with dateless/without date/
  b) s/the "meta" of/the "meta" section of/
  c) s/avoiding to process useless requests./reducing processing of similar
  requests./

- S2.2, para 2: s/also says/states/

- S2.2,
  a) s/and ensure/and to ensure/
  b) para 4: "As recommended, it relies ..." ==> Recommended by who?  Please
  specify.

- S2.2.2:
  OLD:
  As a consequence, when a metric is available as a Calendar array, it
  MUST be as well available as a single value, as provided by
  [RFC7285].

  NEW:
  As a consequence, when a metric is available as a Calendar array, it also
MUST
  be available as a single value as required by [RFC7285].  (This ensures
  backwards compatibility.)

- S3.1, para 1, 2, and 3: I would re-write these paragraphs completely,
probably
  put them in one pragraph.  In its current form, it is hard to parse and
  understand these paragraphs.

  My suggested edit is below, but please feel free to modify as needed.

  A Cost Calendar for a given Cost Type MUST be indicated in the IRD by an
  object of type CalendarAttributes.  A CalendarAttribute object is
represented
  by "calendar-attributes" member of a resource entry.  Each
CalendarAttributes
  object applies to a set of one or more cost types.  A Cost Type name MUST
  appear no more than once in the "calendar-attributes" member of a resource
  entry; multiple appearances of a Cost Type name in CalendarAttributes
object
  of the "calendar-attributes" member causes the ALTO client to ignore any
  occurrences of this name beyond the first encountered occurrence.

- S3.2, para 1: "w.r.t." ==> Too colloquial to be in a standard document.
  Please take out or reword the sentence.

- S3.3:
  a) first bullet: s/at the IANA./with IANA.
  b) in the remaining bullets, s/some fictitious/a fictitious/

- S3.3, after the GET request, what is the horizontal line doing?  It
appears to
  be separating the request and the response, if so, please use the "S ->
C" and
  "C -> S" nomenclature used in other IETF documents to denote request going
  from Client to Server and response from Server to Client.

- S4, para 2 does not make sense grammatically.  Please reword.

- S4.1.3, para 1: s/periods for example to/periods to/

- S4.1.3, para 3: s/To lighten the text/For representation brevity/

Thanks.

- vijay