Hi Richard,

Thanks for your feedback and suggestions, please see answers inline. I answered 
until Sec 3.1 included as I think your comment on section 3.2 should be 
discussed in a separate thread.

Thanks,
Sabine



De : [email protected]<mailto:[email protected]> 
[mailto:[email protected]] De la part de Y. Richard Yang
Envoyé : lundi 18 juillet 2016 00:23
À : IETF ALTO
Cc : Randriamasy, Sabine (Nokia - FR); Roome, Wendy (Nokia - US); Nico Schwan
Objet : Review of draft-ietf-alto-multi-cost-02 (part 1)

This is a re-sent of a previous reply, to have a clean thread and also to fix 
an email address typo in the previous thread.

=====
Hi Sabine, Wendy, Nico,

Here are some more comments on multi-cost-02:
- Abstract:
  "When selecting a mirror site, a client may consider more
   than one metric, perhaps trading bandwidth for latency."
   This can read as a general statement, but my understanding
   is that it is a continuation of the example.

How about restructuring the abstract a bit, say:

" The ALTO (Application Layer-Traffic Optimization) Protocol
   ([RFC7285]) defines several services that return various metrics
   describing the costs between network endpoints, and an ALTO
   Server may offer a variety of cost metrics, based on latency,
   bandwidth, hop count, jitter, or whatever else the ALTO Server
   deems useful.  For example, when downloading a file that is mirrored
   on several sites, a user application may use more than one metric,
   perhaps trading bandwidth for latency, to determine the most efficient
   mirror site."
[SR     ]  OK, we can replace with your text, and then continue with “while the 
base ALTO protocol ([RFC7285]) allows a client…”

- Sec. 1. Introduction:
  "IETF has designed a new service called ALTO that provides guidance to
   overlay applications, which have to select one or several hosts from
   a set of candidates that are able to provide a desired resource."

How about some small revisions:

  "IETF has defined ALTO services [RFC7285] to provide guidance to
  applications that need to select one or several hosts from
   a set of candidates that are able to provide a desired resource."
[SR     ] OK, fine with me


- Sec. 1. Introduction

  "Current ALTO Costs and their modes provide values that are seen to be
   stable over a longer period of time, such as hopcount and
   administrative routing cost to reflect ISP routing preferences.
   Recently, new use cases have extended the usage scope of ALTO to
   Content Delivery Networks (CDN), Data Centers and applications that
   need additional information to select their Endpoints or handle their
   PIDs."

   Thus a multitude of new Cost Types that better reflect the
   requirements of these applications are expected to be specified, in
   particular cost values that change more frequently than previously
   assumed."

Do you need to make the statement on "to be stable ..."? I feel that
the consistency statement in a following paragraph is good enough.
[SR     ] the idea is to point “stability” as a characteristic of metrics 
foreseen during the design of the legacy ALTO protocol and point the evolution 
of new candidate metrics towards more dynamicity.

- Sec. 1. Introduction:
"The ALTO protocol [RFC7285] restricts ALTO Cost Maps and Endpoint
   Cost services to only one Cost Type and Cost Mode per ALTO request."

In later paragraphs, the document uses the phrase base protocol, and this
can be a good place to say that when you say base it is this RFC, for example,

"The ALTO protocol [RFC7285], which this document refers to as the base
protocol, restricts ALTO Cost Maps and Endpoint Cost services to only one
Cost Type and Cost Mode per ALTO request."
[SR     ] agree. We will add this clarification.

- Sec. 2. Terminology

  "Endpoint (EP): A Peer, a ..." What if the list is not exhaustive. How about
  make it clear that they are just examples?
[SR     ] agree. We will rephrase. Would the following be OK?   "Endpoint (EP): 
an endpoint can be for instance a  Peer, a ..."

- Sec. 3. Overview of Approach

This is the place where I want to have a good discussion.

- Sec. 3.1: First, the example in 3.1 of the draft:


 {

    "meta" : {

      "dependent-vtags" : [ ... ],

      "multi-cost-types" : [

        {"cost-mode": "numerical", "cost-metric": "routingcost"},

        {"cost-mode": "numerical", "cost-metric": "hopcount"}

      ]

    }

    "cost-map" : {

      "PID1": { "PID1":[1,0],  "PID2":[5,23],  "PID3":[10,5] },

      ...

    }

   }

According to {11.2.3.6}, there is this paragraph: "The "meta" field of a cost 
map
response MUST include the "dependent-vtags" field, whose value is a 
single-element
array to indicate the version tag of the network map used, where the network 
map is
specified in "uses" of the IRD.  The "meta" MUST also include the "cost-type" 
field,
whose value indicates the cost type (Section 10.7) of the cost map."

The second "MUST" in RFC 7285 can cause issues, right? The reason is that
this MUST requires a cost-type field, but the newer encoding will not have a
"cost-type" field but a "multi-cost-types" field in the response. Do I miss 
anything?

My feeling is that we need to introduce new cost-type to handle the issue. Make 
sense?
[SR     ] As I will recall during the session, the Multi-Cost  design is based 
on the following Legacy ALTO (i.e. RFC7285) compatible design principle:
“A legacy ALTO Client must be able to send legacy requests to a Multi-Cost 
aware ALTO Server and get legacy responses as specified in RFC7285”
As a consequence:
- A legacy ALTO client will allways send legacy requests to a MC-ALTO Server 
and see "cost-types" in responses meta
- Only MC ALTO Client will see "multi-cost-types"

Does this address your concerns? The expressed principle is explicit and maybe 
there should be a placeholder to write it explicitly in the draft.


- Sec. 3.2
I liked this discussion on compatibility with legacy clients. Using my 
understanding
of RESTful thinking, there is a sequence of resources (aka a state machine) a
client will visit, e.g., IRD -> cost map 1 in this case. This discussion/design 
is that by
using the requirement of ignoring unknown field, a legacy client will not 
wonder into a
new type of resource which it does not understand. Hence, the client will not 
"crash".
This is very clever. Such ignoring unknown fields requirements, however, could 
lead to
errors if a client has entered into the state machine.

Let me stop here so that we can discuss on the question on Sec. 3.1.

Thanks!
Richard
_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

Reply via email to