Subject: Re: [alto] Review of cost-calendar-11

From: "Randriamasy, Sabine (Nokia - FR/Paris-Saclay)" <[email-masked]>
Date: Tue, 14 May 2019 14:51:50 +0000

Hi Vijay,

Many thanks for your wise guidance. I have attended to your comments and feedback and hope they meet your expectations.
Please find my answers inline. All document-order specific comments have been attended. An inline answer is provided for some of them.
draft-ietf-alto-cost-calendar-12.txt has just been posted.

Thanks,
Sabine

From: Vijay Gurbani <[email-masked]<mailto:[email-masked]>>
Sent: Monday, March 25, 2019 8:44 PM
To: IETF ALTO <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>
Subject: Review of cost-calendar-11

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.
[[SR]] It is Cost Calendars with an “s” when used in plural mode. I put “CalendarS” in section
There is now a section 2.1 “Terminology”, that among others defines terms Calendar and Cost Calendars.
In Section “2.4.1.  ALTO Cost Calendar for all cost modes”,  Calendar is now in “singular” mode, to harmonize with the rest of section 2.4.

 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).
[[SR]] some updates were made to clarify and shorten sentences, e.g. in sections 4.3 and 5.4.

 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.
[[SR]] Yes, the value of content length includes these elucidations.
To clarify this, section 4.1.3., that brings the first occurrence of such an elucidation,
now ends with the following sentence:
The value of field  "Content-Length" in the responses is computed as if
   "throughputrating" values were encoded in 2 digits.  The same type of
   symbolization is used in the other example Server responses in
   Section 4.2.3 and Section 4.2.4 of this document.
Similar text was also added in sections 4.2.3 and 4.2.4 .
Indeed, one of the IESG reviews did ask that the draft clearly explains that these values ("v1, v2, ..., v12")  are symbols, and then agreed on the proposed sentence, just before the above mentioned one:  “the arrays in the provided example are symbolized by expression  "[v1,v2, ... v12]", that is otherwise not valid in JSON.”.

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.
[[SR]] “Recommended” has been removed as the cited section 8.3.7 of RFC 7285 expresses a MUST rule.

- 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.
[[SR]] a MUST (NOW “MUST cause the ALTO client to ignore”) has been added

- S3.2, para 1: "w.r.t." ==> Too colloquial to be in a standard document.
  Please take out or reword the sentence.
[[SR]] the paragraph has been re-phrased as follows:
<t>It may be useful to distinguish IRD resources supported by the base ALTO protocol
        from resources supported by its extensions.
        To achieve this, one option, is that a "root" ALTO Server
        implementing base protocol resources delegates "specialized"
        information resources such as the ones providing Cost Calendars, to
        another ALTO Server running in a subdomain that is specified with its URI in
        the "root" ALTO Server. This option is described in Section 9.2.4
        "Delegation using IRDs" of <xref target="RFC7285"/>.</t>

- 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.
[[SR]] para 2 has been re-phrased as follows:
<t>The reference time zone for the provided time values is UTC.
      The option chosen to express the time format is the HTTP header fields
      format specified in <xref target="RFC7231"/> where, however, timestamps
      are still displayed with the acronym "GMT" rather than "UTC":</t>

- 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