Re: [alto] ALTO Extension: A document defining multi-metrics filtering?

Qin Wu <bill.wu@huawei.com> Mon, 14 October 2013 03:27 UTC

Return-Path: <bill.wu@huawei.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 655C311E80E2 for <alto@ietfa.amsl.com>; Sun, 13 Oct 2013 20:27:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.738
X-Spam-Level:
X-Spam-Status: No, score=-3.738 tagged_above=-999 required=5 tests=[AWL=-2.740, BAYES_00=-2.599, GB_SUMOF=5, HTML_MESSAGE=0.001, J_CHICKENPOX_51=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QfvXejdplED5 for <alto@ietfa.amsl.com>; Sun, 13 Oct 2013 20:27:42 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) by ietfa.amsl.com (Postfix) with ESMTP id 4BDD911E81DE for <alto@ietf.org>; Sun, 13 Oct 2013 20:27:40 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml204-edg.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id AZB17471; Mon, 14 Oct 2013 03:27:38 +0000 (GMT)
Received: from LHREML403-HUB.china.huawei.com (10.201.5.217) by lhreml204-edg.china.huawei.com (172.18.7.223) with Microsoft SMTP Server (TLS) id 14.3.146.0; Mon, 14 Oct 2013 04:27:01 +0100
Received: from nkgeml409-hub.china.huawei.com (10.98.56.40) by lhreml403-hub.china.huawei.com (10.201.5.217) with Microsoft SMTP Server (TLS) id 14.3.146.0; Mon, 14 Oct 2013 04:27:37 +0100
Received: from NKGEML501-MBS.china.huawei.com ([169.254.2.141]) by nkgeml409-hub.china.huawei.com ([10.98.56.40]) with mapi id 14.03.0146.000; Mon, 14 Oct 2013 11:27:32 +0800
From: Qin Wu <bill.wu@huawei.com>
To: "Y. Richard Yang" <yry@cs.yale.edu>, IETF ALTO <alto@ietf.org>
Thread-Topic: [alto] ALTO Extension: A document defining multi-metrics filtering?
Thread-Index: AQHOyIcKeuX3PR7A3UaZLZZKGcHyMZnzhqKQ
Date: Mon, 14 Oct 2013 03:27:31 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABA43C0AC14@nkgeml501-mbs.china.huawei.com>
References: <CANUuoLrYSOykB6YyvNSj2Zvrw-ZQiJoFFBoMCXLzkpgW37T1HA@mail.gmail.com>
In-Reply-To: <CANUuoLrYSOykB6YyvNSj2Zvrw-ZQiJoFFBoMCXLzkpgW37T1HA@mail.gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.138.41.149]
Content-Type: multipart/alternative; boundary="_000_B8F9A780D330094D99AF023C5877DABA43C0AC14nkgeml501mbschi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Cc: "choits@etri.re.kr" <choits@etri.re.kr>, Wendy Roome <W.Roome@alcatel-lucent.com>
Subject: Re: [alto] ALTO Extension: A document defining multi-metrics filtering?
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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, 14 Oct 2013 03:27:54 -0000

Richard took words out of my mouth,:)
Yes, in some cases, from source to destination, there is only one hop away, or we only care about source endpoint address and destination endpoint address, we don't care about which intermediary it traverses in the path from src to destination, I think base protocol strong support such case.

However when we put more constraints on the path, e.g.,we need to compute an end to end path with these constraints. These constraints can be latency, packet loss, jitter.
However latency, packet loss, jitter are usually gathered from routing protocol, and put as per link metrics, so we need to do some aggregation when we apply these per link metrics
to the end to end path, e.g., per link latency, if we choose a path that traverses link A, link B, link C, then we can get end to end latency by choosing the sum of per link latency of link A, link B and link C.

Regards!
-Qin

From: alto-bounces@ietf.org [mailto:alto-bounces@ietf.org] On Behalf Of Y. Richard Yang
Sent: Monday, October 14, 2013 10:42 AM
To: IETF ALTO
Cc: Wendy Roome; choits@etri.re.kr; Qin Wu
Subject: Re: [alto] ALTO Extension: A document defining multi-metrics filtering?

Let me add on: although a filtering service can be a very useful service, it can also be quite involved, and hence the WG may need to think through the issues when designing this service. For example, there are two types of use cases:

- end-to-end: given src set {s1, s2, s3, ..., sn} and dst set {d1, d2, d3, ..., dm}, return all pairs (si, dj), where si in {s1, ..., sn} and dj in {d1, ..., dm} such that (si, dj) satisfies the constraints;

- relay: given src s, dst d, and a relay candidate set {r1, r2, ..., rk}, return all of the ri such that s -> ri -> d satisfies the constraints.

Note that with relay, we will then need to worry about the "composition" semantics of metrics. For example, delay might be additive, loss rate (unless small and independent) may not be.

The relay could be even fancier (e.g., one-hop server detour such as Akamai one-hop detour and hence may involved two relay servers), but it may or may not be a good idea to go too complex, depending on if the WG can define a clean API (e.g., SQL select/where grammar comes to mind quickly).

Thanks!

Richard
On Sun, Oct 13, 2013 at 7:57 PM, Y. Richard Yang <yry@cs.yale.edu<mailto:yry@cs.yale.edu>> wrote:
Dear all,

The base ALTO protocol (http://www.ietf.org/id/draft-ietf-alto-protocol-20.txt) is mostly a single-cost-metric centric:

- The Cost Map filtering service uses only one cost-type (Sec. 11.3.2.3):

     object {
     CostType   cost-type;
     [JSONString constraints<0..*>;]
     [PIDFilter  pids;]
   } ReqFilteredCostMap;

   object {
     PIDName srcs<0..*>;
     PIDName dsts<0..*>;
   } PIDFilter;

...
 constraints  Defines a list of additional constraints on which
      elements of the Cost Map are returned.  This parameter MUST NOT be
      specified if this resource's capabilities (Section 11.3.2.4)
      indicate that constraint support is not available.  A constraint
      contains two entities separated by whitespace: (1) an operator,
      'gt' for greater than, 'lt' for less than, 'ge' for greater than
      or equal to, 'le' for less than or equal to, or 'eq' for equal to;
      (2) a target cost value.

- The Endpoint Cost service allows filtering (Sec. 11.5.1.3) as well, and is similar to Cost Map Filtering:

   object {
     CostType          cost-type;
     [JSONString       constraints<0..*>;]
     EndpointFilter    endpoints;
   } ReqEndpointCostMap;

   object {
     [TypedEndpointAddr srcs<0..*>;]
     [TypedEndpointAddr dsts<0..*>;]
   } EndpointFilter;

   constraints  Defined equivalently to the "constraints" input
      parameter of a Filtered Cost Map (see Section 11.3.2).

In other words, in the base protocol, the filtering condition and the output are based on the same Cost Metric. It is natural that the filtering and the output are based on different Cost metrics. For example, a Client asks for routingcost for only pairs whose latency is below a threshold (see use cases in http://tools.ietf.org/html/draft-randriamasy-alto-multi-cost-07).

One may argue that the filter-metric-no-equal-to-output-metric function can be implemented on top of the filter-and-output-using-one-metric function:

In particular, suppose the filtering is based on metrics M1 and M2, and the output is M3, for a set src to a set dsts. The Client can use the following three queries:

- Q1: Use single metric <M1, filter on M1, srcs, dsts> and obtains <srcs1, dsts1> in return;
- Q2: Use single metric <M2, filter on M2, srcs1, dsts1> and obtains <srcs2, dsts2> in return;
- Q3: Use single metric <M3, no filter, srcs2, dsts2> to get the final result.

Although this is not too bad, it is inconvenient. Note that preceding is first discussed by Sabine, Wendy, Nico in:
http://tools.ietf.org/html/draft-randriamasy-alto-multi-cost-07

I saw that this is also the issue discussed in
- http://tools.ietf.org/html/draft-wu-alto-json-te-01
- http://tools.ietf.org/html/draft-lee-alto-app-net-info-exchange-02

Hence, I propose that the WG extends the base protocol with this capability, as I see that it is quite useful. One issue is that I see three designs, and I am wondering if the authors are preparing on discussing their designs at the coming IETF, and if there is a possibility for a single, unified document, focusing on this issue.

Thanks a lot!

Richard