[altoext] General Applicability of a Cost Graph?

Greg Bernstein <gregb@grotto-networking.com> Mon, 16 April 2012 18:13 UTC

Return-Path: <gregb@grotto-networking.com>
X-Original-To: altoext@ietfa.amsl.com
Delivered-To: altoext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D770D11E8093 for <altoext@ietfa.amsl.com>; Mon, 16 Apr 2012 11:13:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.597
X-Spam-Level:
X-Spam-Status: No, score=0.597 tagged_above=-999 required=5 tests=[AWL=-0.594, BAYES_05=-1.11, HTML_MESSAGE=0.001, MANGLED_COST=2.3]
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 DtDtyBZszTZn for <altoext@ietfa.amsl.com>; Mon, 16 Apr 2012 11:13:29 -0700 (PDT)
Received: from mail14c40.carrierzone.com (mail14c40.carrierzone.com [209.235.156.154]) by ietfa.amsl.com (Postfix) with ESMTP id B9BC611E8086 for <altoext@ietf.org>; Mon, 16 Apr 2012 11:13:28 -0700 (PDT)
X-Authenticated-User: gregb.grotto-networking.com
Received: from [192.168.0.124] (c-67-170-243-110.hsd1.ca.comcast.net [67.170.243.110]) (authenticated bits=0) by mail14c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id q3GIDQuK023018 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <altoext@ietf.org>; Mon, 16 Apr 2012 18:13:27 +0000
Message-ID: <4F8C6142.5000202@grotto-networking.com>
Date: Mon, 16 Apr 2012 11:13:22 -0700
From: Greg Bernstein <gregb@grotto-networking.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: altoext@ietf.org
Content-Type: multipart/alternative; boundary="------------000305000405000705040908"
X-CSC: 0
X-CHA: v=1.1 cv=cE2zE5uokYvx4xyeMczZDxtXk10bntb4/cxEqLCXu1Q= c=1 sm=1 a=sWnG8HX0OJUA:10 a=bOf8IfqTpxgA:10 a=xOaALFOtT5cA:10 a=B4uWGr+4DaAYpgidvygSiQ==:17 a=48vgC7mUAAAA:8 a=poVSc7PeeMjM9WpT-sMA:9 a=LAPpH-FrhdYz9K2GHm0A:7 a=wPNLvfGTeEIA:10 a=EgY3od2ZU2QA:10 a=h-I_03WOSDMA:10 a=2FEJL95tQ_RPOflksFsA:9 a=AyTesGSxLumolzXp2FUA:7 a=UiCQ7L4-1S4A:10 a=hTZeC7Yk6K0A:10 a=_W_S_7VecoQA:10 a=frz4AuCg-hUA:10 a=B4uWGr+4DaAYpgidvygSiQ==:117
X-CTCH-Spam: Unknown
X-CTCH-RefID: str=0001.0A020209.4F8C6147.013D, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
Subject: [altoext] General Applicability of a Cost Graph?
X-BeenThere: altoext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Non-WG list for discussions related to ALTO Protocol Extensions <altoext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/altoext>, <mailto:altoext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/altoext>
List-Post: <mailto:altoext@ietf.org>
List-Help: <mailto:altoext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/altoext>, <mailto:altoext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Apr 2012 18:13:30 -0000

Hi all, I wanted to see what the intersection between the "high 
bandwidth use cases", "Data Center", and "CDN uses" might be.
In particular we (high bandwidth folks) are interested in "Cost Graph" 
type of information and given a bit more formally at the end of this 
e-mail. Starting from the ALTO protocol document and looking at 
extensions we have:

 1. ALTO provides for "path cost", endpoint properties, and endpoint
    costs. Registry allows for new costs types in addition to 'exp:' and
    'priv:' prefixed cost identifiers.
 2. In draft-randriamasy-alto-multi-cost-06, Multi-Cost ALTO, bandwidth
    was brought up as a possible cost type. This seems to have wide
    applicability in the controlled and partially controlled cases. They
    call this "*/path bandwidth/*". --> We'd like standard latency and
    bandwidth cost types if possible.
 3. However "path bandwidth" would typically be used with some type of
    "routing cost", and perhaps a "latency cost". This leads to a
    "*/multi-cos//t/*" scenario. --> We'd like multiple costs at once
    (e.g., bandwidth, routing, latency)
 4. Bandwidth is much different from a hop count or distance based
    "routing cost". We have illustrated in our high bandwidth use case
    draft how "bottleneck" links can lead to erroneous assumptions on
    network capacity and we introduced a "*/cost graph/*" representation
    to more accurately model the network. --> We really need graph
    representation for high bandwidth situation. We gave examples in our
    high bandwidth draft and BoF presentation.

A graph based model seems generally useful.  For example, it seems to me 
that this could be applicable to Data Center and possibly CDN 
situations. For example in the Data Center presentation 
(http://www.ietf.org/proceedings/83/slides/slides-83-i2aex-2.pdf) there 
was a use case on "Network Rack/Location Awareness" (slide 8). There 
seem to be a variety of data center network architectures (top of rack, 
end of row, fabric extenders, etc). It seems that that bandwidth 
constraints of such different designs could be well modeled via a cost 
graph, i.e., use a cost graph for VM placement and such... Similar 
comments apply to the "Use Case: Hybrid Cloud Bandwidth On Demand" on 
slide 9.  Data center and CDN folks any opinions on your needs/desires 
for potential extensions mention in items 2-4 above?

Cheers

Greg B.

A cost graph can be represented as a set of links with properties 
(costs). Possible cost graph JSON encoding:
// Simple Link object

object {

NIDName aend;// Node ids (NIDs) are similar to PIDs but

NIDName zend;// may not have endpoints, i.e., just a node for modeling.

JSONNumber wt; //A numerical routing cost

JSONNumber delay; //A numerical latency cost, optional

JSONNumber bw;//A numerical bandwidth "cost", optional

// Other costs private or experimental could be added

// for example stuff related to reliability or economic cost.

// Only one cost of each type would be permitted.

// Note a multi-cost like mechanism could be used.

} LinkData


// Collection of links each identified by link id (LID) name (LIDName).

object {

LinkData [lidname]<0..*>;    // Link id (LID) would be an identifier 
similar to

...                          // a PID or NID an identifies the link

} NetworkLinkData;

// The graph

object {

VersionTagmap-vtag;

NetworkLinkData graph;

} InfoResourceNetworkGraph;


-- 
===================================================
Dr Greg Bernstein, Grotto Networking (510) 573-2237