Re: [CDNi] New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)
"Matt Caulfield (mcaulfie)" <mcaulfie@cisco.com> Tue, 17 July 2012 20:01 UTC
Return-Path: <mcaulfie@cisco.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 F0E2811E8095 for <cdni@ietfa.amsl.com>; Tue, 17 Jul 2012 13:01:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
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 A+jerGg5hmUJ for <cdni@ietfa.amsl.com>; Tue, 17 Jul 2012 13:01:00 -0700 (PDT)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) by ietfa.amsl.com (Postfix) with ESMTP id 4FB1B21F86F5 for <cdni@ietf.org>; Tue, 17 Jul 2012 13:01:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=mcaulfie@cisco.com; l=50092; q=dns/txt; s=iport; t=1342555309; x=1343764909; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=SVbfEQmZG1oTGHmNyqnzrBcWIu4vuGXU+/xGj0wjSbs=; b=ZDQ1PM6YBBYe4T6RtfyuNStLRtX/5b1yVkvtKg614EBh6wyCXR5ka5Eo 0vpPFFMjBusR17w0ywd6p7eTt3YIduczMz4oz7ewhu76Vxwly+gylkYYP IwYqfxjy7xl42pGbIqWYImD8tlC+zYANfBoe6t2iuatfOw9FfPUSERYH4 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AhAFAETEBVCtJXG+/2dsb2JhbABFgkqtQAGIeYEHgiABAQEEEgEaPw0QAgEIEQQBAQsWAQYHMhQJCAEBBAENBQgah2sLnRCgMItAFYVaYAORDIVDjRCBZoJfgVc
X-IronPort-AV: E=Sophos; i="4.77,604,1336348800"; d="scan'208,217"; a="102751299"
Received: from rcdn-core2-3.cisco.com ([173.37.113.190]) by rcdn-iport-2.cisco.com with ESMTP; 17 Jul 2012 20:01:47 +0000
Received: from xhc-rcd-x03.cisco.com (xhc-rcd-x03.cisco.com [173.37.183.77]) by rcdn-core2-3.cisco.com (8.14.5/8.14.5) with ESMTP id q6HK1llV019420 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 17 Jul 2012 20:01:47 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.20]) by xhc-rcd-x03.cisco.com ([173.37.183.77]) with mapi id 14.02.0298.004; Tue, 17 Jul 2012 15:01:47 -0500
From: "Matt Caulfield (mcaulfie)" <mcaulfie@cisco.com>
To: Kevin J Ma <kevin.ma@azukisystems.com>, "cdni@ietf.org" <cdni@ietf.org>
Thread-Topic: New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00)
Thread-Index: Ac1eC0YVScB5jeVWTF6OpuGDrKcS+gFg0GrwAC74lzA=
Date: Tue, 17 Jul 2012 20:01:46 +0000
Message-ID: <166EBB70C264A9479E459B01B1BA6C9201F7B3@xmb-aln-x03.cisco.com>
References: <166EBB70C264A9479E459B01B1BA6C9201B060@xmb-aln-x03.cisco.com> <291CC3F9E50E7641901A54E85D0977C65326E2AA7F@MAILR002.mail.lan>
In-Reply-To: <291CC3F9E50E7641901A54E85D0977C65326E2AA7F@MAILR002.mail.lan>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [161.44.173.128]
x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19046.004
x-tm-as-result: No--37.341100-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_166EBB70C264A9479E459B01B1BA6C9201F7B3xmbalnx03ciscocom_"
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: Tue, 17 Jul 2012 20:01:07 -0000
Hi Kevin, Thank you for the comments, please see my responses inline below. Regards, Matt From: Kevin J Ma [mailto:kevin.ma@azukisystems.com] Sent: Monday, July 16, 2012 4:40 PM To: Matt Caulfield (mcaulfie); cdni@ietf.org Cc: Ben Niven-Jenkins (ben@velocix.com) Subject: RE: New Metadata Interface Draft (draft-cjlmw-cdni-metadata-00) 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? [Matt>] The separation was created to categorize metadata properties. It's not essential. It may be useful if one server in a CDN is delivery a piece of content and another server is acquiring. The acquisition server could limit itself to looking at the acquisition metadata while the delivery server could limit itself to looking at the delivery metadata. Would you suggest removing this distinction? Though it could be argued that these are logically different functions, the extra layer seems unnecessary, and introduces some complexity to the inheritance model? [Matt>] I don't think that the extra layer introduces any additional complexity. In our model, objects can contain objects which can contain objects, the delivery/acquisition objects aren't a special case. 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? [Matt>] Any object at any level can be overridden. So yes, just the Auth list could be overridden, there is no need to override the entire delivery object. Yes, the schema must be preserved - so to override the auth list it would be wrapped by a delivery object. No, there is no concept of leaf vs. branch. Based on your comment, I think we could spend more time on the description of inheritance. 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? [Matt>] I'm not sure what you mean by duplicate metadata. Each PathMetadata object defines a bunch of metadata properties, each one is unique. Each PathMetadata object either inherits or overrides the metadata properties of its parent. - 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? [Matt>] I agree, this approach is not scalable. The general rule is that for DNS-redirection, only the HostMetadata object can be referenced by a request router. Any metadata properties which are added and need to be available at request-routing time should be restricted to the HostMetadata object. I think we could consider relaxing the restrictions on the PathMetadata object and allow the operator to choose which properties to place in each object. Will look into this further. - 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? [Matt>] I don't think this is a requirement. The interface doesn't break if someone adds what is effectively an unreachable child node. In practice it should be avoided and we could add a note stating so. How are ambiguous patterns (e.g., "/*/foo/*") handled? Are there defined restrictions on the PathMatch objects to guarantee that all lookups will be deterministic? [Matt>] I don't think we've specified the exact behavior of the regex. This will need to be added. - 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? [Matt>] Using a common ACL and ACLRule definitions only avoids redundancy in the draft. A better description may have kept the TimeWindow ACL completely separate from the Location ACL (separate object definitions). If more metadata properties fit the "ACL" model, then they should be added alongside TimeWindow and Location. 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? [Matt>] Agree. - 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"? [Matt>] Correct. 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? [Matt>] Will need to add some definition of Mandatory to the text before we start using it. Mandatory means that that property must be defined in the metadata for a piece of content - there is no default value. - 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? [Matt>] We debated whether or not to allow patterns in hostnames and decided against it. Ben can provide some of the background there. Yes, the hostname should support both IP an DNS values. No, the hostname does not include any other part of the URI. Will need to add some clarification on the hostname to the draft. - For Lists of objects, I did not see a specific ordering defined? Is there a way to enforce ordering? [Matt>] I'm not sure I understand your question. All lists are ordered. Can you clarify? - 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? [Matt>] An "x-" object can be added anywhere. 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? [Matt>] It is intended for adding new metadata properties, however it could be used for changing the structure of the metadata tree or changing how we do path matches as you suggest. - 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? [Matt>] Yes, the ignorable property affects the entire object and all the objects it contains. The "ignorable" property can be thought of as an attribute. In the XML encoding, it would likely be an attribute (and not an element). In JSON, yes, it can lead to wrapper object. - 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? [Matt>] No, there's no way to get the metadata for a specific URL without traversing the tree. This approach enforces cacheability. As for local lookups, it's up to the CDN how it store metadata internally. The local lookup speed is independent of the metadata interface speed. Note: I have also uploaded an updated version of my draft: http://tools.ietf.org/html/draft-ma-cdni-metadata-03 [Matt>] Thanks, I will check it out. thanx. -- Kevin J. Ma From: cdni-bounces@ietf.org<mailto:cdni-bounces@ietf.org> [mailto:cdni-bounces@ietf.org]<mailto:[mailto:cdni-bounces@ietf.org]> On Behalf Of Matt Caulfield (mcaulfie) Sent: Monday, July 09, 2012 3:45 PM To: cdni@ietf.org<mailto:cdni@ietf.org> Cc: Ben Niven-Jenkins (ben@velocix.com<mailto: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
- [CDNi] New Metadata Interface Draft (draft-cjlmw-… Matt Caulfield (mcaulfie)
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Kevin J Ma
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Matt Caulfield (mcaulfie)
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Ben Niven-Jenkins
- [CDNi] Host pattern matches in CDNI Metadata (was… Ben Niven-Jenkins
- Re: [CDNi] Host pattern matches in CDNI Metadata … Rob Murray
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Kevin J Ma
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Kevin J Ma
- Re: [CDNi] Host pattern matches in CDNI Metadata … Ben Niven-Jenkins
- Re: [CDNi] Host pattern matches in CDNI Metadata … Kevin J Ma
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Ben Niven-Jenkins
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Ben Niven-Jenkins
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Kevin J Ma
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Kevin J Ma
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Matt Caulfield (mcaulfie)
- Re: [CDNi] New Metadata Interface Draft (draft-cj… Ben Niven-Jenkins