Re: [alto] A unified approach to value schemas and ALTO maps

Jensen Zhang <jingxuan.n.zhang@gmail.com> Wed, 27 July 2016 01:18 UTC

Return-Path: <jingxuan.n.zhang@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 171C612DCBD for <alto@ietfa.amsl.com>; Tue, 26 Jul 2016 18:18:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S7tZA4ZR8LxD for <alto@ietfa.amsl.com>; Tue, 26 Jul 2016 18:18:50 -0700 (PDT)
Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B5CD412DC63 for <alto@ietf.org>; Tue, 26 Jul 2016 18:18:50 -0700 (PDT)
Received: by mail-io0-x234.google.com with SMTP id m101so54271305ioi.2 for <alto@ietf.org>; Tue, 26 Jul 2016 18:18:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mLfHNopMyO6jGJRSDD5/rpDpiqB50PidOt2peh+Hylo=; b=WyhSagrKJQVYeNOPFJslqiYb9BN+kuRvqeWG5zizzBH1bphlIXC2CzcwZimWqCa7WI pjlIhOjwSse7dr1DkJRpr0lSY0P2lTBBDsuTsnHu4ntMc4cKuJLn3oCrg7/MsDxgOebW jJuiwBrZrHvymofZvtNKf4Ecz2s3+1wVK5x0gS/w+65LPxfZYNq6oO0q9/ElYI5X1sbW J3f37nMSZv0BokX9WgzE/dpnBfpsFow2iuoghTywBo2Z8dWB27kZ1Gf8TelKO1EXlobq fcTK2NhQ7ZSgegbRPaG82Ape1PwR2yT/i2TwTz+BG74EZxn5LE6DvqQoVYJYbv00EUNK 6h1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mLfHNopMyO6jGJRSDD5/rpDpiqB50PidOt2peh+Hylo=; b=T2HGWDTwat9+6Rebb2DAj1hXFYQBiwUI93EkYMMs5uyDb5w99WsRAkXNcBVjre3rez i9UfOEqGt7WbCD5nrg1/Ma7NV9FZSw5bxJdBItfyTbqiDiyQT+5yBToOWHhbfG7WKvh6 6pE5agz9QszqNkFS4Yzrfa1w0uNvL4n8tr45Dn1Ja0YsNjCbH3LPQzyKkyUwwX4cX/lN gNp0gqmf1ipanvmJBKYyTeZMWzQjZD0SaWY9ObS+IXB1V2W34MnqBM8OSc0CqCTytJLV ec6GIMM9iBmANBovUb7RduFzGL6cgTVu4JTw25431LG4QpbA/6brFjWL9lqgI8TMABNi xGKw==
X-Gm-Message-State: AEkoouvcUoDWsGdqIY09tMsN0ClVVNzhDvlNE/uopEzjSo1bqGthd4Drz39WxW9+btaF1dVAAH0uFyKrAjtHjA==
X-Received: by 10.157.5.99 with SMTP id 90mr14204517otw.190.1469582330078; Tue, 26 Jul 2016 18:18:50 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.52.145 with HTTP; Tue, 26 Jul 2016 18:18:49 -0700 (PDT)
In-Reply-To: <D3BD183E.80D4FC%w.roome@alcatel-lucent.com>
References: <D3BD183E.80D4FC%w.roome@alcatel-lucent.com>
From: Jensen Zhang <jingxuan.n.zhang@gmail.com>
Date: Wed, 27 Jul 2016 09:18:49 +0800
Message-ID: <CAAbpuyr8QemDbT+gvytkyWVJrnmK3XtocDfhkCwPi3bNFEQN3A@mail.gmail.com>
To: Wendy Roome <wendy.roome@nokia-bell-labs.com>
Content-Type: multipart/alternative; boundary="94eb2c11047ac0aa5f053893cc3a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/eOjIjs8DbgLR7g7KwDg8mxXJoms>
Cc: IETF ALTO <alto@ietf.org>
Subject: Re: [alto] A unified approach to value schemas and ALTO maps
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Wed, 27 Jul 2016 01:18:53 -0000

Hi Wendy,

I want to support this idea. Please see comments inline.

On Wed, Jul 27, 2016 at 1:38 AM, Wendy Roome <
wendy.roome@nokia-bell-labs.com> wrote:

> Recently we talked about using "value schemas" so that we can add new
> value types without defining new media types and message formats.
>
> Here is another take on that approach. It unifies *everything* into one
> common message format. Extensions simply require defining new entity
> domains and (simple) value types.
>
> So here's my idea. Every ALTO resource boils down to a mapping from 1-,
> 2-, 3- or 4-tuples to values. The tuple elements are names of entities in
> a domain.
>
> Examples:
>    Cost Map: (pid, pid)  =>  value
>    Endpoint Costs:  (addr, addr) =>  value
>    Endpoint Props:  (addr, prop-name)  =>  value
>    MultiCost Map:   (pid, pid, cost-type)  =>  value
>    MultiCost Calendar Map: (pid, pid, date-range, cost-type)  =>  value
>    Network Map:  (cidr)  =>  pid
>
> Note that I flipped the network map around. I think cidr => pid is cleaner
> than pid => cidr-array, and it enforces the rule that a cidr is in only
> one pid.
>

Agree. And maybe another benefit from cidr => pid is for incremental
update. Once a cidr changes its pid, pid => cidr-array will require an
update of the whole cidr-array. But cidr => pid only requires an update of
one pid item.


>
> With this approach, the meta section of a response would give the domain
> for each tuple element, and the value type. For example, here is a
> conventional cost map:
>
>    meta:
>       tuple-domains: [pid, pid]
>       value-type:
>          specification: rfc7285
>          format: cost-type
>          parameters:
>              metric: routingcost, mode: numerical
>    map:
>       pid1:
>          pid1: ###,  pid2: ###, ...
>
> The value field gives document that specifies this value format (or a
> registered name), a format name that is defined in that document, and any
> additional parameters necessary to understand this value.
>

The specification metadata is very interesting and I like this design. But
I don't think RFC is the good solution for the specification citation. RFC
is human-readable, but it is hard for programs to parse RFC documents.
Maybe we find a schema language (or JSON schema) to specify the value
format.


>
> Here is a multi-cost map:
>    meta:
>       tuple-domains: [pid, pid, cost-type-name]
>       value-types:
>          3:
>

Is this a typo? Or what's the mean of '3:' here?


>             cost:
>                specification: rfc7285
>                format: cost-type
>                parameters:
>                  metric: routingcost, mode: numerical
>             delay:
>                specification: rfc####
>                format: duration
>                parameters:
>                   metric: propagation-time
>    map:
>       pid1:
>          pid2:
>             cost: 123, delay: 2ms
>
> Here the different cost types have different value types. meta.value-types
> means that the value depends on the 3d element of the tuple - the
> cost-type-name - and gives the value format for each cost-type-name.
>

It is also more flexible for incremental updates.


>
>
> So are people interested in pursuing this approach? The good news is that
> will unify everything. The bad news is it will replace everything in rfc
> 7285.
>
>     - Wendy Roome
>
>
>
> _______________________________________________
> alto mailing list
> alto@ietf.org
> https://www.ietf.org/mailman/listinfo/alto
>

I find this approach is also compatible with FCS, since FCS returns a fid
=> value map currently. I'd like to push it forward.

One more question: I think (src, dst) => cost map and (dst, src) => cost
map will have the same "tuple-domains" value, but they are different for
clients. How to differentiate them?

Best,
Jensen