Tony,

On Mon, Jul 18, 2016 at 4:09 AM, wang xin <[email protected]> wrote:

> Dear Richard and all,
>
> For the problem on Section 3.1, my thinking is that though it is
> incompatible with the definition in Section 11.2.3.6 in RFC7285, which
> specifies that the "meta" field of a cost map response MUST include the
> "cost-type" field, this would not cause an error for ALTO clients.
>
What I meant is that the response does not conform to the alto-costmap+json
media type syntax, and hence a standard (component) parser of this media
type should report an error.


> Considering that if an ALTO client receives the response like the example
> in Sec 3.1, the ALTO client is sure to be aware of the multi-cost
> extensions (actually, the multi-cost result is expected by the client),
> which is guaranteed by the input parameters in the cost map request. But I
> agree that the problem should be considered and solved.
>
> Some potential solutions: 1. Introducing new cost-type (by Richard's
> comment); 2. Including an empty cost-type field (just to be consistent with
> RFC7285).
>
>
> Hmm. For solution 2, an empty cost-type does not look elegant to me. One
possibility is to use the cost-type to "point to" the multi-cost-types
definition, forming some kind of "chaining" definition, e.g.,

"cost-type": {
   "cost-mode": "multi-cost-types", "cost-metric": ?
}
"multi-cost-types" : [
        {"cost-mode": "numerical", "cost-metric": "routingcost"},
        {"cost-mode": "numerical", "cost-metric": "hopcount"}
      ]

The key issue is whether we can use this as a general technique (aka
grammar) for the other use cases, such as path vector, cost calendar,
performance-stat objects, ...

Richard

Thanks,
>
> Xin
> ------------------------------
> *From:* alto <[email protected]> on behalf of Y. Richard Yang <
> [email protected]>
> *Sent:* Monday, July 18, 2016 6:22:35 AM
> *To:* IETF ALTO
> *Cc:* Wendy Roome; Nico Schwan
> *Subject:* [alto] 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."
>
> - 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."
>
> - 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.
>
> - 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."
>
> - 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?
>
> - 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?
>
> - 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
>



-- 
-- 
 =====================================
| Y. Richard Yang <[email protected]>   |
| Professor of Computer Science       |
| http://www.cs.yale.edu/~yry/        |
 =====================================
_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

Reply via email to