[icnrg] Some comments on the CCNx Selectors draft (https://datatracker.ietf.org/doc/draft-mosko-icnrg-selectors/)
"David R. Oran" <daveoran@orandom.net> Sun, 02 June 2019 13:40 UTC
Return-Path: <daveoran@orandom.net>
X-Original-To: icnrg@ietfa.amsl.com
Delivered-To: icnrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 841231200A3 for <icnrg@ietfa.amsl.com>; Sun, 2 Jun 2019 06:40:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 n5-sJ_JAMcFF for <icnrg@ietfa.amsl.com>; Sun, 2 Jun 2019 06:40:03 -0700 (PDT)
Received: from spark.crystalorb.net (spark.crystalorb.net [IPv6:2607:fca8:1530::c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 251ED120043 for <icnrg@irtf.org>; Sun, 2 Jun 2019 06:40:03 -0700 (PDT)
Received: from [192.168.171.1] ([IPv6:2601:184:4081:19c1:fd03:a148:47c0:514e]) (authenticated bits=0) by spark.crystalorb.net (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id x52DdveP028477 (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Sun, 2 Jun 2019 06:39:59 -0700
From: "David R. Oran" <daveoran@orandom.net>
To: "Mosko, Marc" <mmosko@parc.com>, ICNRG <icnrg@irtf.org>
Date: Sun, 02 Jun 2019 09:39:56 -0400
X-Mailer: MailMate (1.12.5r5635)
Message-ID: <89236739-5137-496D-8A6A-699730D1CC82@orandom.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_MailMate_49671E41-D582-4D7A-8853-6CBD4520360A_="
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg/6IYlUWspO1hmokcpee0r5oR97xM>
Subject: [icnrg] Some comments on the CCNx Selectors draft (https://datatracker.ietf.org/doc/draft-mosko-icnrg-selectors/)
X-BeenThere: icnrg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Information-Centric Networking research group discussion list <icnrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/icnrg>, <mailto:icnrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/icnrg/>
List-Post: <mailto:icnrg@irtf.org>
List-Help: <mailto:icnrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/icnrg>, <mailto:icnrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jun 2019 13:40:06 -0000
All comments with <chair hat off> Content discovery is important, so I’d like to see something adopted by the RG for formal progression to experimental. I’d like to step back a bit though and ask if evolving the approach in CCNx 0.x and NDN is appropriate knowing what we’ve learned in the last few years. The current selectors draft (https://datatracker.ietf.org/doc/draft-mosko-icnrg-selectors/) basically fixes the original design mistake of forcing all forwarders to do discovery through prefix match on CS data. It does this by leveraging typed name components and using an encapsulation technique so that whatever object that matches the selectors can be returned as “native” - with its original name and signature. On the other hand, it still has the following properties: - returns only one object when multiple might match - does not have a completely deterministic answer in the presence of cache/repo/producer instance desynchronization (not clear this is avoidable since we have a distributed system with at best eventual consistency semantics) - requires exclusions, which can make for big interests that in turn causes fragmentation to be needed and complicates congestion control as a consequence. - seems to still permit cache exploration (since the selector interests are not authenticated), which might be viewed as a privacy problem. I don’t have a concrete proposal to make though. Here are a few thoughts about a possible alternative approach: - Since we depend a lot more on Manifests now that the original NDN & CCNx 0.x designs, why not have the discovery return a Manifest instead of a single encapsulated object? - Since we have fast exact match and nameless objects along with now permitting objects to have multiple names and hence multiple ways objects can be discovered, perhaps we can exploit that to allow different discovery patterns rather than smooshing everything into a static/brittle set of selectors - Some of the properties were driven by trying to make discovery cheap and ubiquitous and hence forced into casting discovery as a direct single Interest/Data exchange. Since we now know that pawing through a large CS or Repo can be computational expensive (and even require a fair amount of I/O), maybe this tradeoff isn’t attractive. We now have experience with distributed method invocation (e.g. NFN and RICE) so maybe we do discovery as an explicit remote method. This may solve a few problems: - We can do authentication and key exchange, so discovery operations and results can be more private and cache exploration is no longer a hazard - It might make it easier to build extensibility into the supported discovery patterns as all of them might not need to be supported by all discovery services. (Aside - it seems that a similar direction is being taken in the fast-repo work for NDN, where a given application can design patterns for the Repo to fetch the right stuff for storage of that application’s data). - We can more easily manage the resources for expensive discovery operations, and following the idea of using Manifests, make those the result of the discovery computation. - By essentially “binding” to one of the discovery services/servers, it may be possible to get a more internally-consistent set of results. Yes, this might make discovery a lot more “expensive” in terms of RTTs but in the end it might also make applications easier to write with patterns that look more like what the application considers “native” and the results as a Manifest easier to paw through and possibly iterate on. Thoughts? DaveO
- [icnrg] Some comments on the CCNx Selectors draft… David R. Oran
- Re: [icnrg] Some comments on the CCNx Selectors d… christian.tschudin
- Re: [icnrg] Some comments on the CCNx Selectors d… Mosko, Marc <mmosko@parc.com>