Re: [alto] Discussion II: Unifying cost-mode and cost-type to a single type

Wendy Roome <w.roome@alcatel-lucent.com> Mon, 25 February 2013 15:30 UTC

Return-Path: <w.roome@alcatel-lucent.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 4815321F9472 for <alto@ietfa.amsl.com>; Mon, 25 Feb 2013 07:30:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.645
X-Spam-Level:
X-Spam-Status: No, score=-9.645 tagged_above=-999 required=5 tests=[AWL=-0.443, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c30WsgYeEsTK for <alto@ietfa.amsl.com>; Mon, 25 Feb 2013 07:30:14 -0800 (PST)
Received: from ihemail4.lucent.com (ihemail4.lucent.com [135.245.0.39]) by ietfa.amsl.com (Postfix) with ESMTP id 3883721F88A2 for <alto@ietf.org>; Mon, 25 Feb 2013 07:30:14 -0800 (PST)
Received: from usnavsmail3.ndc.alcatel-lucent.com (usnavsmail3.ndc.alcatel-lucent.com [135.3.39.11]) by ihemail4.lucent.com (8.13.8/IER-o) with ESMTP id r1PFU8t5011997 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 25 Feb 2013 09:30:08 -0600 (CST)
Received: from umail.lucent.com (umail-ce2.ndc.lucent.com [135.3.40.63]) by usnavsmail3.ndc.alcatel-lucent.com (8.14.3/8.14.3/GMO) with ESMTP id r1PFU7Fo002159 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 25 Feb 2013 09:30:08 -0600
Received: from [135.222.152.198] (wdr-i7mbp.mh.lucent.com [135.222.152.198]) by umail.lucent.com (8.13.8/TPES) with ESMTP id r1PFU37X026275; Mon, 25 Feb 2013 09:30:06 -0600 (CST)
User-Agent: Microsoft-MacOutlook/14.3.1.130117
Date: Mon, 25 Feb 2013 10:30:04 -0500
From: Wendy Roome <w.roome@alcatel-lucent.com>
To: Richard Alimi <rich@velvetsea.net>
Message-ID: <CD50DEFD.36F30%w.roome@alcatel-lucent.com>
Thread-Topic: [alto] Discussion II: Unifying cost-mode and cost-type to a single type
In-Reply-To: <CA+cvDabAFXtZFEcE+jTgyHPjpcHWYj_sA6cit4WL=0H6YYnQpQ@mail.gmail.com>
Mime-version: 1.0
Content-type: multipart/alternative; boundary="B_3444633009_25398655"
X-Scanned-By: MIMEDefang 2.57 on 135.245.2.39
X-Scanned-By: MIMEDefang 2.64 on 135.3.39.11
Cc: "alto@ietf.org" <alto@ietf.org>
Subject: Re: [alto] Discussion II: Unifying cost-mode and cost-type to a single type
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, 25 Feb 2013 15:30:17 -0000

I agree the client needs to know the mode for a cost type. To use an old
analogy, an "ordinal" cost type is like the warning "Drawing Not To Scale."

But I think the real question is whether "modes" are orthogonal to "cost
types." We've been assuming they are -- we've been assuming any "cost type"
can be presented in any "mode," and that clients would want to select the
mode independently of the cost type.

I don't think that's true. Consider the two modes we have now -- numerical
and ordinal. For costs based on delay or distance, yes, those are orthogonal
-- we can easy transform numerical costs into ordinal costs. But consider a
hopcount cost. The numerical version is already an ordinal, more or less.
Sure, we can disguise the hopcounts by transforming them, but that just
turns an "ordinal" hopcount cost into a general distance-based cost. Why
bother?

And "ordinal" mode is meaningless for the string-valued cost types that have
been proposed in extensions.

On top of that, if modes really are orthogonal -- if the various modes are
mathematical transforms of an underlying "numerical" cost -- why can't the
client do those transforms?  Take "ordinal" mode. It only takes a few lines
of code to convert an arbitrary set of values into the ordinals 1, 2, 3,
etc. If a client wants to rank-order the costs, a client can easily do that.

So I claim that "mode" is really a property of "cost type" -- they should be
unified, not orthogonal. The client must be aware of the mode, because it's
part of the semantics of the cost type. But a client doesn't need to request
"mode" independently of "cost type." If a client wants a "mode" that is a
simple transform of a cost type, the client should do the transform, and
offload the work from the server to the client. And if we define a mode that
isn't a simple transform, then it's inherently part of the definition of the
cost type.

So what would that mean for the protocol?   In the resource directory entry
for a uri, the server would give the cost-type, but not cost-mode. In a
filtered cost-map request, the client would specify cost-type, but not
cost-mode.  And if you accept my suggestion of a "cost-types" list in the
resource directory, the entry for each type would include some sort of
"mode" attribute.

- Wendy Roome


From:  Richard Alimi <rich@velvetsea.net>
Date:  Mon, February 25, 2013 01:12
Subject:  Re: [alto] Discussion II: Unifying cost-mode and cost-type to a
single type
> 
> 2. Why would a client ever want ordinal cost values? The only reason I can
> think of is if the client could rely on "1" being the lowest cost. But that
> doesn't work, because ordinal values can be anything -- they do not have to be
> 1, 2, 3, 4, Š.
> 
> So I don't see clients as needing ordinal mode at all. It's just there to warn
> clients that this cost isn't linear.

Clients needed to know the difference between when the servers were
providing ordinal values or numerical values. For example, the P4P approach
does not apply to ordinal values.

> 
> In fact, I'm tempted to suggest that we replace the idea of a "mode" attribute
> with a simple binary attribute called "linear." For a linear cost, 40 is twice
> as high as 20, and 21 is only slightly higher than 20. For a non-linear cost,
> 40 is higher than 21, and 21 is higher than 20, but we don't know by how much.

If the intent is to rename it, then I think it's a mistake to collapse it to
a boolean value.  Then, that removes flexibility for extensions. For
example, what if someone wanted to add a mode that wasn't represented by a
single number, but rather a key/value map (such as some statistical
information about a measurement).  Having an identifier instead of a boolean
value gives more flexibility for extensions.