Re: [CDNi] footprint and capability mechanisms

"Y. Richard Yang" <yry@cs.yale.edu> Mon, 10 February 2014 22:13 UTC

Return-Path: <yang.r.yang@gmail.com>
X-Original-To: cdni@ietfa.amsl.com
Delivered-To: cdni@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5C3DD1A0892 for <cdni@ietfa.amsl.com>; Mon, 10 Feb 2014 14:13:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level:
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
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 x_jYFKn2uif7 for <cdni@ietfa.amsl.com>; Mon, 10 Feb 2014 14:12:59 -0800 (PST)
Received: from mail-pb0-x235.google.com (mail-pb0-x235.google.com [IPv6:2607:f8b0:400e:c01::235]) by ietfa.amsl.com (Postfix) with ESMTP id D886D1A088C for <cdni@ietf.org>; Mon, 10 Feb 2014 14:12:58 -0800 (PST)
Received: by mail-pb0-f53.google.com with SMTP id md12so6790752pbc.26 for <cdni@ietf.org>; Mon, 10 Feb 2014 14:12:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=wgWWXO6lUHZaPnHZawz3tAbyEouO6ngeC98tO7moaV0=; b=i6sJYGybg2DvVCYt/gu1ocrtcdFxmzFNiMejmLni642GE9RzyOfmEjFpvGlgbVmzh0 yuxyarc1UE/M7oxnG2PMmvGl69POy4BPl+bpM9vpYf+Lu6GPnfNemJ+bbs85XX1GjaOE TAavFiE3GK9XwtxMKbG+0j6DZ5kLPxNqbHJJeaKEiJwaEsdPFZaOF7ytIUT/lT8j3bt2 6K5LX8NnG+Ov7tv1X0tPP5h7WRtb5JpgsGqtAg5426emlxudBZtQrP3cw9h1wpLy4v+G GaPY/YcETpOez8UIf2+q+z/deysWFq2mpJ64IbPRtATCqGI7DCaFV78VtSs1IeGrg37H JnZA==
MIME-Version: 1.0
X-Received: by 10.66.26.236 with SMTP id o12mr28927980pag.15.1392070378616; Mon, 10 Feb 2014 14:12:58 -0800 (PST)
Sender: yang.r.yang@gmail.com
Received: by 10.68.144.168 with HTTP; Mon, 10 Feb 2014 14:12:58 -0800 (PST)
In-Reply-To: <291CC3F9E50E7641901A54E85D0977C6D541655F89@MAILR002.mail.lan>
References: <CF19173E.D6129%jon.peterson@neustar.biz> <2779C9F0771F974CAD742BAE6D9904FE63AE748D@DAPHNIS.office.hd> <291CC3F9E50E7641901A54E85D0977C6D541655C06@MAILR002.mail.lan> <CF1E6D4B.DA081%jon.peterson@neustar.biz> <291CC3F9E50E7641901A54E85D0977C6D541655F89@MAILR002.mail.lan>
Date: Mon, 10 Feb 2014 17:12:58 -0500
X-Google-Sender-Auth: 2ICf3t-Ipi3jhi_DJS-SacoIj0I
Message-ID: <CANUuoLr_BX0nOwXVjf_iGqbaNBUUoNEEFnBepFDZkk2nDvECdw@mail.gmail.com>
From: "Y. Richard Yang" <yry@cs.yale.edu>
To: Kevin J Ma <kevin.ma@azukisystems.com>
Content-Type: multipart/alternative; boundary="bcaec529985f6c316404f214a4b4"
Cc: "cdni@ietf.org" <cdni@ietf.org>
Subject: Re: [CDNi] footprint and capability mechanisms
X-BeenThere: cdni@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss issues associated with the Interconnection of Content Delivery Networks \(CDNs\)" <cdni.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cdni>, <mailto:cdni-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/cdni/>
List-Post: <mailto:cdni@ietf.org>
List-Help: <mailto:cdni-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cdni>, <mailto:cdni-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Feb 2014 22:13:04 -0000

Hi Kevin,

Regarding incremental updates, a short answer is that one may use JSON
Patch (RFC6902). If we emphasize reusability (in IETF), then this is the
way to go. There are discussions among the authors that we can improve the
encoding efficiency using a customized incremental updates encoding. This
can be important for a large-scale update, e.g., outage to a large number
of end hosts. But this may or may not be crucial for cdni.

Let's see some more details on the overhead. Jan's ALTO-based design uses
two maps:

- The footprint map (ALTO Network Map, which assigns each (PID) name to its
set of endhosts)
- The capability map (the PID property map, which maps each PID name to its
current set of capabilities).

A use case I see that the FCI interface provides is that the dCDN provides
notifications about failures/temporary outage to the uCDN. Hence, let's
consider the overhead of the updates in such settings.

Case 1: No change to the Network Map. It is just that the capabilities of
some named network regions change. Then, only the capability map changes.
Updating the capability map should be small, because I anticipate (based on
BGP data size) that the largest amount of data will be IP prefixes. To be
concrete, if a region, say south-France (or whatever ever city named in the
Network Map), is down/overloaded, the update is just an update to the
mapped capabilities of the PID. No IP prefixes appear on the wire. When the
outage/overload is over, update is again simple, with no IP prefixes on the
wire.

Case 2: There is a need to change the Network Map. We can identify several
key cases. One: an IP address moved (e.g., IP address relocation), so that
an IP address moved from south-France to north-France. This will be a
delete of the IP address from the old PID and an insertion of the same to
the new PID. If the mapping from PID to capability does not change, we have
small overhead. Second: the Network Map is not well designed such as that
it is too large a region, and there is a partial failure of the region on a
given capability. Then the change can be large in that these failed IP
addresses will need to be removed from the old PID and moved to a new PID;
the capabilities of the new PID will need to defined. However, this
overhead is hard to reduce. If IP prefixes are the largest data items on
the wire, then the Network Map should define "atoms" to avoid individual IP
prefixes appears on the wire.

Is this the overhead that you are referring to?

Richard




On Mon, Feb 10, 2014 at 4:08 PM, Kevin J Ma <kevin.ma@azukisystems.com>wrote:

> Basically that's what I meant.
> Initialization as well as asynchronous/incremental updates.
>
> > -----Original Message-----
> > From: Peterson, Jon [mailto:jon.peterson@neustar.biz]
> > Sent: Monday, February 10, 2014 2:56 PM
> > To: Kevin J Ma; Jan Seedorf; cdni@ietf.org
> > Subject: Re: footprint and capability mechanisms
> >
> >
> > Do you mean inefficiencies beyond the need for asynchronous and
> > incremental updates? This is the discussion I think we need to have.
> >
> > Jon Peterson
> > Neustar, Inc.
> >
> > On 2/9/14, 8:47 PM, "Kevin J Ma" <kevin.ma@azukisystems.com> wrote:
> >
> > >I think my question is still about the actual call flows for the ALTO
> > >implementation, and whether there are any significant inefficiencies?
> > >Though, to Jon's point, both approaches are going to need more work,
> > >so it's hard to assess from the current state.
> > >
> > >I believe Matt had an action from Vancouver to also do an analysis?
> > >
> > >--  Kevin J. Ma
> > >
> > >> -----Original Message-----
> > >> From: CDNi [mailto:cdni-bounces@ietf.org] On Behalf Of Jan Seedorf
> > >> Sent: Friday, February 07, 2014 4:01 AM
> > >> To: Peterson, Jon; cdni@ietf.org
> > >> Subject: Re: [CDNi] footprint and capability mechanisms
> > >>
> > >> Dear Jon,
> > >>
> > >> Thank you for the good and fair summary below, this is pretty much the
> > >> status quo. Just one comment: the reason why some of the necessary
> ALTO
> > >> extensions have been delayed is that the ADs/chairs have disallowed
> > such
> > >> work to be discussed before the core ALTO protocol has been published;
> > >> just recently green light for continuing work on extensions has been
> > >> given.
> > >>
> > >> What in my view it boils down to (as you highlight below):
> > >> -- ALTO has error handling, encoding, security worked out (pro for
> > using
> > >> ALTO)
> > >> -- incremental and asynchronous updates for ALTO is early stage; in
> > fact
> > >> the ALTO WG is right now re-chartering to add those two items to the
> > >> charter item list, early work exists, but it will take some time for
> > >>those
> > >> specs to be ready (con for using ALTO)
> > >>
> > >> What Richard and I have in mind was to drive these
> > >>very-soon-to-be-on-the-
> > >> chartered ALTO extensions (i.e. incremental/asynchronous updates) by
> > the
> > >> concrete CDNI FCI use case. In other words we intend to define a
> > >>solution
> > >> for CDNI/FCI and kick that back into the ALTO WG. But no doubt, having
> > >> these ALTO extensions done in ALTO will likely take longer than the
> > >> current CDNI milestone for the FCI solution spec.
> > >>
> > >> Kevin, all: anything you want to share to the discussion?
> > >>
> > >>  - Jan
> > >>
> > >> > -----Original Message-----
> > >> > From: CDNi [mailto:cdni-bounces@ietf.org] On Behalf Of Peterson,
> Jon
> > >> > Sent: Thursday, February 06, 2014 7:41 PM
> > >> > To: cdni@ietf.org
> > >> > Subject: [CDNi] footprint and capability mechanisms
> > >> >
> > >> > Following our discussion about the FCI mechanism in Vancouver, I
> took
> > >>a
> > >> > look at two drafts out there today: draft-ma and draft-seedorf. In
> > >> short,
> > >> > I think both express promising directions, and both have a long way
> > to
> > >> go
> > >> > before they will describe fully fleshed-out mechanisms. At a high
> > >>level,
> > >> > their architectures are similar: both are about pushing JSON objects
> > >> that
> > >> > describe footprints and capability via HTTP. It¹s often when the
> > >>choices
> > >> > are so similar that it¹s hardest to figure out which is the right
> > >> approach.
> > >> >
> > >> > One of the prominent distinctions between the two is that Kevin
> > >> specifies
> > >> > a capability-sharing system with an optional footprint, whereas Jan
> > >> > specifies a footprint-sharing system with the option of
> capabilities.
> > >> > Jan¹s choice is an artifact of using ALTO as a basis, which already
> > >>has
> > >> a
> > >> > concept of sharing 'network maps' in this fashion, and can be
> > extended
> > >> to
> > >> > add further information to these maps such as capability. Kevin
> works
> > >> from
> > >> > the ground up on a bespoke system for sharing capabilities, which
> may
> > >> not
> > >> > ever involve sharing footprint data. I¹ve turned this over in my
> head
> > >>a
> > >> > bunch of times, and I¹m not really sure there¹s any practical
> > >>advantage
> > >> > one approach has over the other. One of the non-obvious reasons why
> > is
> > >> > that the concept of a PID (the groupings of network elements) in
> ALTO
> > >>is
> > >> > so abstract that it serves as a layer of indirection, and can serve
> > >>as a
> > >> > placeholder for a footprint that¹s effectively specified implicitly.
> > >> >
> > >> > An important feature we want this mechanism to have is incremental
> > FCI
> > >> > updates. Both Kevin and Jan have a story about this, though I think
> > >>both
> > >> > will require substantial work to advance. Kevin, for example,
> > >>sketches a
> > >> > system of primitives (replace, include, exclude) to allow a dCDN to
> > >> update
> > >> > a uCDN about changes, based on tracking update sequencing with a new
> > >> > 'CDNI-FCI-Seq' HTTP header. State freshness of web resources is a
> > >>pretty
> > >> > thoroughly-studied problem, though, and there are other HTTP
> > >>facilities
> > >> > (Etags, say) that address this. I think it¹s pretty unlikely that
> our
> > >> > problem is enough of a special case that we could convince
> > Application
> > >> > folks here at the IETF that we need to standardize a custom HTTP
> > >>header
> > >> > for it. Jan¹s draft, on the other hand, references existing ALTO
> work
> > >>on
> > >> > incremental updates, in particular draft-schwan-alto-incr-updates.
> > >>That
> > >> > draft contains a good overview of the different approaches,
> including
> > >> HTTP
> > >> > If-Modified-Since and Etags, as well as looking at JSON-specific
> > >> > incremental change techniques like JSON Patch (RFC6902). Sounds
> > great,
> > >> but
> > >> > - draft-schwan is currently an expired I-D (for like a year), and it
> > >>is
> > >> > really more of a survey than a draft that makes a concrete
> > >> recommendation.
> > >> > This work would need to be resumed and made far more concrete for
> > this
> > >> to
> > >> > be a viable approach.
> > >> >
> > >> > Asynchronous updates are another very important feature. We don¹t
> > want
> > >> > to
> > >> > force uCDNs to poll dCDNs, we want dCDNs to be capable of
> > >>asynchronously
> > >> > notifying uCDNs when a change to network state happens. Kevin again
> > >>has
> > >> a
> > >> > sketch of a solution here, where capability information can either
> be
> > >> > acquired by a GET from the uCDN or a POST by the dCDN. While as
> > >> described
> > >> > it is very lightweight, I suspect it¹s probably a bit too
> > lightweight:
> > >> I¹d
> > >> > want to know a lot more about how resource identifiers are
> discovered
> > >>or
> > >> > formulated, and a ton more about error-handling and security. This
> > >> > mechanism almost certainly should be ReST-based, as it will then
> > >>inherit
> > >> > many of the right principles. ALTO, based on Jan¹s draft, of course
> > is
> > >> > already ReST-based, and has exhaustive sections on JSON encoding,
> > >> errors,
> > >> > security, and the way to formulate queries via POSTs. What it lacks
> > is
> > >> an
> > >> > asynchronous publication capability. Once again, there are some I-Ds
> > >>we
> > >> > can point to, but nothing I¹d consider very concrete. Worse still,
> > >>even
> > >> > the capability data that ALTO might carry is based on a -00 I-D
> > >> > (draft-roome-alto-pid-properties) which is very sketchy, to the
> point
> > >> > where providing even a mock-up of the JSON encoding for capabilities
> > >>in
> > >> > ALTO is probably impossible today.
> > >> >
> > >> > So where does this leave us? Fleshing out either of these approaches
> > >> will
> > >> > take work. We don¹t want to do needless work articulating two
> > >>proposals
> > >> > where we only need one. It is however difficult to have a serious
> > >> > discussion about the advantages of either mechanism when they are
> > only
> > >> > specified to this limited degree. Ideally some kind of merger would
> > be
> > >> > possible here, and the sooner we can get to that the better. I don¹t
> > >> think
> > >> > the baseline JSON formats for rendering either footprints or
> > >>capability
> > >> > will ultimately vary significantly in the two proposals. It then
> just
> > >> > becomes a question of whether it is more practical to start tabula
> > >>rasa,
> > >> > as Kevin does, or to build on an existing mechanism, as Jan does.
> > ALTO
> > >> > comes with baggage, but that baggage has accumulated from several
> > >>years
> > >> > now of comment and review, and surely a lot of those components
> (like
> > >> > error handling, encoding, security) would have to be incorporate
> into
> > >> > Kevin¹s draft if we went forward with it. I suspect that would
> > >> ultimately
> > >> > be a longer path, but neither of these paths are particularly short.
> > >> >
> > >> > Jon Peterson
> > >> > Neustar, Inc.
> > >> >
> > >> >
> > >> > _______________________________________________
> > >> > CDNi mailing list
> > >> > CDNi@ietf.org
> > >> > https://www.ietf.org/mailman/listinfo/cdni
> > >> _______________________________________________
> > >> CDNi mailing list
> > >> CDNi@ietf.org
> > >> https://www.ietf.org/mailman/listinfo/cdni
>
> _______________________________________________
> CDNi mailing list
> CDNi@ietf.org
> https://www.ietf.org/mailman/listinfo/cdni
>



-- 
-- 
 =====================================
| Y. Richard Yang <yry@cs.yale.edu>   |
| Professor of Computer Science       |
| http://www.cs.yale.edu/~yry/        |
 =====================================