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

"Y. Richard Yang" <yry@cs.yale.edu> Mon, 14 October 2013 02:42 UTC

Return-Path: <yang.r.yang@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 E9C9911E80E8 for <alto@ietfa.amsl.com>; Sun, 13 Oct 2013 19:42:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.673
X-Spam-Level:
X-Spam-Status: No, score=-1.673 tagged_above=-999 required=5 tests=[AWL=0.304, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
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 9Bw6+Hct4uk2 for <alto@ietfa.amsl.com>; Sun, 13 Oct 2013 19:42:20 -0700 (PDT)
Received: from mail-pb0-x236.google.com (mail-pb0-x236.google.com [IPv6:2607:f8b0:400e:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id D132A11E8106 for <alto@ietf.org>; Sun, 13 Oct 2013 19:42:17 -0700 (PDT)
Received: by mail-pb0-f54.google.com with SMTP id ro12so6724591pbb.13 for <alto@ietf.org>; Sun, 13 Oct 2013 19:42:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:cc:content-type; bh=g8MzeRlDGIDhHf1mNsfUZgR6DFNRMmSMPU9KRnn5M9E=; b=IWCk5JCPDvELe/iVAPrES9IDUGDICd0Cp+B8lr7Dl9G3WQupYcU0hklyz3y8HmU4pf Y1d64gtpUAfvBGVW+lJitEfyIFT6EDfgilwQhf+eUfvsLN7RwZG/maSzMa/08BUnrLfo SkAlQKK0CRGUY9McnrbxqXQjn4P9CGrL9r/wzNTkhDVlPNwsIOTurgirsCBNKmy4EiAT xEFP2Bv3PEdWHIv8tj6aeLoWAeuqXcyNp4D53KLdfeNg+Mz2vBmoXpZkpjD5jDqLE8zY aXbEyaj9y7VEhTfxLkNJHC7Sah5kq/IVaxVHfBgX+wceSHztPXC/Xf7iQ8aTNwzav+PQ ZtRg==
MIME-Version: 1.0
X-Received: by 10.68.134.6 with SMTP id pg6mr33742407pbb.67.1381718537618; Sun, 13 Oct 2013 19:42:17 -0700 (PDT)
Sender: yang.r.yang@gmail.com
Received: by 10.68.225.129 with HTTP; Sun, 13 Oct 2013 19:42:17 -0700 (PDT)
Date: Sun, 13 Oct 2013 22:42:17 -0400
X-Google-Sender-Auth: -GS0XVxi2tbUqbTK84x-9zT7M2g
Message-ID: <CANUuoLrYSOykB6YyvNSj2Zvrw-ZQiJoFFBoMCXLzkpgW37T1HA@mail.gmail.com>
From: "Y. Richard Yang" <yry@cs.yale.edu>
To: IETF ALTO <alto@ietf.org>
Content-Type: multipart/alternative; boundary="047d7b10cebf9d4da004e8aa6a85"
Cc: Wendy Roome <W.Roome@alcatel-lucent.com>, "choits@etri.re.kr" <choits@etri.re.kr>, Qin Wu <bill.wu@huawei.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 02:42:21 -0000

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> 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
>