Re: [CDNi] New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)

Kevin J Ma <kevin.ma@azukisystems.com> Mon, 16 July 2012 20:42 UTC

Return-Path: <kevin.ma@azukisystems.com>
X-Original-To: cdni@ietfa.amsl.com
Delivered-To: cdni@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1058311E80F0 for <cdni@ietfa.amsl.com>; Mon, 16 Jul 2012 13:42:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=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 0W+3ceEhn9EY for <cdni@ietfa.amsl.com>; Mon, 16 Jul 2012 13:42:33 -0700 (PDT)
Received: from mxout.myoutlookonline.com (mxout.myoutlookonline.com [64.95.72.244]) by ietfa.amsl.com (Postfix) with ESMTP id EBEE711E8291 for <cdni@ietf.org>; Mon, 16 Jul 2012 13:42:32 -0700 (PDT)
Received: from mxout.myoutlookonline.com (localhost [127.0.0.1]) by mxout.myoutlookonline.com (Postfix) with ESMTP id 277F95548A2; Mon, 16 Jul 2012 16:43:18 -0400 (EDT)
X-Virus-Scanned: by SpamTitan at mail.lan
Received: from HUB015.mail.lan (unknown [10.110.2.1]) by mxout.myoutlookonline.com (Postfix) with ESMTP id 2F86A556EAD; Mon, 16 Jul 2012 16:40:26 -0400 (EDT)
Received: from MAILR002.mail.lan ([10.110.18.15]) by HUB015.mail.lan ([10.110.17.15]) with mapi; Mon, 16 Jul 2012 16:40:21 -0400
From: Kevin J Ma <kevin.ma@azukisystems.com>
To: "Matt Caulfield (mcaulfie)" <mcaulfie@cisco.com>, "cdni@ietf.org" <cdni@ietf.org>
Date: Mon, 16 Jul 2012 16:40:24 -0400
Thread-Topic: New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)
Thread-Index: Ac1eC0YVScB5jeVWTF6OpuGDrKcS+gFg0Grw
Message-ID: <291CC3F9E50E7641901A54E85D0977C65326E2AA7F@MAILR002.mail.lan>
References: <166EBB70C264A9479E459B01B1BA6C9201B060@xmb-aln-x03.cisco.com>
In-Reply-To: <166EBB70C264A9479E459B01B1BA6C9201B060@xmb-aln-x03.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_291CC3F9E50E7641901A54E85D0977C65326E2AA7FMAILR002maill_"
MIME-Version: 1.0
Cc: "Ben Niven-Jenkins (ben@velocix.com)" <ben@velocix.com>
Subject: Re: [CDNi] New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)
X-BeenThere: cdni@ietf.org
X-Mailman-Version: 2.1.12
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, 16 Jul 2012 20:42:35 -0000

Hi Matt,

  A couple of initial comments/questions about the merged draft:

  - I do not understand the need for a heirarchical separation of the
    Acquisition and Delivery objects?  Why is the property "key" not
    sufficient for designating the function of the metadata?

    Though it could be argued that these are logically different
    functions, the extra layer seems unnecessary, and introduces some
    complexity to the inheritance model?

    With inheritance-based override, can a lower level PathMetadata
    object override just an Auth List, or does it have to replace the
    entire Delivery object?  Does it have to place the Auth List
    inside a lower level Delivery object, or can it just define a new
    Auth List with no Delivery object wrapper?  Is there a concept of
    leaf vs. branch objects for override purposes?

    In general, if there are an arbitrary number of levels below each
    object, and an arbitrary number of levels of PathMetadata which
    may contain objects with arbitrary levels of metadata which may
    override previous levels, is there a need to check that duplicate
    Metadata do not exist within a given subtree, and/or should that
    restriction be stated explicity?

  - I see that the PathMetadata defines some restrictions to what it
    may contain, however, this does not seem like a scalable method of
    managing object restrictions.  As we move forward and more vendor
    specific metadata are defined, managing metadata collisions using
    the such a method seems complex, in that the CDNI Metadata RFC
    could need to be continuously updated to add more restrictions.
    It would be nice if there was a general set of rules for how and
    where to define new metadata, rather than creating highly
    customized objects which have complex modification restrictions?

  - I assume that the inheritance model requires that PathMatch
    objects must match the path of all PathMatch objects above it in
    the hierarchy?  i.e., I cannot add a PathMatch for "/bar/baz"
    inside a PathMetadata whose PathMatch was for "/foo"?  It is
    probably worth stating explicitly?

    How are ambiguous patterns (e.g., "/*/foo/*") handled?  Are there
    defined restrictions on the PathMatch objects to guarantee that
    all lookups will be deterministic?

  - In the ACLRule object, if you can only have either an allow or a
    deny Property but not both, and the ACLRule list can only have
    either Location or TimeWindow properties but not both, it is not
    clear that much is gained by combining them into the same ACL and
    ACLRule objects?  In the future, if new types of ACLs are added,
    would we modify these existing objects (and rev the CDNI Metadata
    RFC), or just add separate object definitions?

    The reuse of object definitions, in this case, does not seem to
    buy us anything?  Defining separate LocationACL/LocationACLRule
    objects and TimeWindowACL/TimeWindowACLRule objects, where
    allow/deny is just an attribute/property would result in
    essentially the same implementation, but without the
    interdependendies, which would simplify future revisions?

  - In the Property definitions, I assume that the "key" is the term
    that follows the "Property:" tag, and that the "Description:" and
    "Type:" indented below describe the "value"?

    It was not clear to me what the "Mandatory:" tag implied?
    Mandatory to specify the Property in every object?  Mandatory to
    implement support for the Property?  or Mandatory to enforce the
    Property?  It might be useful to explicitly define Mandatory?

  - In the HostMatch object, the hostname Property is defined as a
    String?  Should there be Pattern support for hostnames?  Also,
    does hostnames support both IP and DNS values?  Also, does the
    hostname support a URI prefix that should be matched as part of
    the hostname, and not be included in the PathMatch?

  - For Lists of objects, I did not see a specific ordering defined?
    Is there a way to enforce ordering?

  - With respect to extensibility, can an "x-" object be added to any
    other object, or are there restrictions on where a new custom
    object may be added into the hierarchy?

    Can I add a new ACL type?  Can I add a new pattern matching option
    to the HostMatch and/or PathMatch objects (fundamentally changing
    the way hosts and paths are matched)?  Can I add new types of
    location algorithms (e.g., GPS coordinates or zip code) to the
    Location object?  Or is it intended more for just creating a new
    hierarchy under the Delivery object?

  - With respect to the "ignorable" Property, does that affect the
    entire parent object to which it is added?  If it is a Property
    itself (rather than an attribute of a Property), then does that
    require a wrapper object around the actual Property and the
    "ingnorable" Property, for all new Properties?  Should it be a
    standard attribute like Mandatory?

  - Is there a way for the client to request metadata for a given URI,
    rather than recursively checking and requesting PathMetadata?
    Doesn't this lead to alot of lookups (even local cache lookups)
    for each request, to find all of the applicable PathMetadata?
    Are there optimizations for local cache lookup?

  Note: I have also uploaded an updated version of my draft:
        http://tools.ietf.org/html/draft-ma-cdni-metadata-03

thanx.

--  Kevin J. Ma


From: cdni-bounces@ietf.org [mailto:cdni-bounces@ietf.org] On Behalf Of Matt Caulfield (mcaulfie)
Sent: Monday, July 09, 2012 3:45 PM
To: cdni@ietf.org
Cc: Ben Niven-Jenkins (ben@velocix.com)
Subject: [CDNi] New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)

Hi everyone,

As we announced in April, a group of us (Ben Niven-Jenkins, Kent Leung, Rob Murray, Grant Watson, and I) have been working on a merge of two of the CDNI metadata interface proposals:

-       draft-caulfield-cdni-metadata-core-00

-       draft-jenkins-cdni-metadata-00

The merged draft has now been submitted: http://tools.ietf.org/html/draft-cjlmw-cdni-metadata-00

We will be presenting on this draft in Vancouver. Any feedback on the list is also appreciated.

Thanks,
Matt