<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-right:0in" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Sep 8, 2016, at 7:18 AM, Burke, Jeff <<a href="mailto:jburke@remap.ucla.edu">jburke@remap.ucla.edu</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">Hi,</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri"> </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">(Sorry for these messages all at once, and let me know if this should go to ndn-interest.)</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri"> </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">Through an earlier conversation with Lixia this week, I realized that the definition / expectations of a ‘repo’ may be more specific than I previously understood. 
 In particular, she mentioned that repos storing and registering the same namespace should (eventually) have the same data for that namespace, presumably via sync.</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="background:white">I'll start by saying that this is all researchy: we are walking into a new territory that we are yet to fully explore.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="background:white">So what I said, before or here, is just to share ideas with others.<o:p></o:p></p>
<p class="MsoNormal" style="background:white"><b><o:p> </o:p></b></p>
<p class="MsoNormal" style="background:white"><b>[jb] Yes, of course. :) <o:p></o:p></b></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><br>
<br>
<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="background:white">It is easy to see why a desire of all repos for the same name prefix being sync'ed up: an interest for that prefix may be forwarded to any of the repos, if all repos have the same data, anyone can answer it; otherwise
 routers have to handle NACKs and reroute the interest to try other repos.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><o:p> </o:p></p>
<p class="MsoNormal" style="background:white"><b>[jb] Right, but this is a forwarding-centric view. If I am an app that has some (sparse) knowledge of a namespace, perhaps I just want to make it available to the network, without having to worry about forwarding? 
 I thought we are not supposed to have to think about forwarding! (At least this is what I get told when I ask about publisher mobility... What about a mobile repo? :)    <o:p></o:p></b></p>
<p class="MsoNormal" style="background:white"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><o:p> </o:p></p>
</div>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">A few related questions:</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri"> </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">1) Is this attempt at eventual consistency of what’s stored for a given namespace a requirement to be called a ‘repo’? </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">see the above explanation.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="background:white">I wont call it a requirement, but desirable for performance concerns.</span><o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><b>[jb] As I alluded to above, I am having trouble reconciling this with the “share what you know” approach of sync-based communication.  If I am a repo storing the thousand most popular netflix titles for the local
 geographic region (<i>persistently, for a month, let’s say</i>), do I register a thousand prefixes, or do I need a namespace for popular content (hope not), or knowledge of other names to NACK the content I don’t have?  I’m just not sure of the implications
 of what it means to know about all content for a prefix you are, as a repo, publishing...  So I am wondering still if I’m missing a connotation of exactly what a repo is vs. some other publisher.
<o:p></o:p></b></p>
<p class="MsoNormal" style="background:white"><span style="font-family:Calibri"><o:p> </o:p></span></p>
</div>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">2) Practically, if such sync is ultimately required behavior for a repo, will/should repo-ng itself incorporate some basic synchronization features?   </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">as I mentioned, there was a piece of work done on repo sync 2 years back (but I dont know its implementation status)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri;background:white"> </span><br>
<b>[jb] Yes, I remember this somewhat too.  But it seems that 1) persistent storage is fundamental to apps; 2) interaction with storage happens near/right above the network layer in the case of repo; and 3) there are some performance and conceptual concerns
 with providing consistency between nodes providing storage in the same namespace, so this should be important to support?  (Or, at least to we need to inform users of the existing repo-ng the probably trajectory of development that is expected but not happening
 yet, in the repo documentation on the wiki? I think this type of getting our implicit plans out there is important to supporting community effort.)  <o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">3) Does opportunistic caching behavior (without sync) mean that the storage is not a ‘repo’?</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">My own view: no.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">my explanation to others:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- caching: opportunistic <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- (managed) repo: managed storage<br>
<br>
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri"> </span><b>[jb] Ok. (I will go back to the chilled water example, though... what about a publisher that naturally only has knowledge of part of a tree..?  Is that
 not really a repo if it’s knowledge isn’t complete for the branch it stores? What about if it doesn’t store depth all the way down)
<o:p></o:p></b></p>
<p class="MsoNormal" style="background:white"><span style="font-family:Calibri"><o:p> </o:p></span></p>
</div>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">4) Would, for example, network-attached storage that stores everything for a prefix but only up to a given depth in the tree not qualify as a repo?  </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">everything is attached to the network :)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">so I am not sure what "network-attached storage" really means.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"> </span><b>[jb] Sorry, the adjective probably wasn’t that relevant.  :)
</b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="background:white">if your question is "what if a managed repo for a name prefix only contains incomplete data under that prefix" -- that still works, and *may* even work OK if one understands the traffic patterns so that most
 of the Interests forwarded to that repo can be satisfied, without having to zigzagging to other places seeking for data.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"> </span><b>[jb] Not sure I understand who the “one” is and how they control Interest forwarding?  I’m trying to think in terms of scenarios where app developers don’t really have the ability
 to manage network forwarding any more than they do today. (Yes, of course, some people deploying large apps control their network infrastructure to that level of detail but many don’t.)</b><o:p></o:p></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri;background:white"> </span><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">5) Or, for example, in the BMS case, if I use a repo to store all of the electrical current samples for the UCLA campus, but not chilled water, it will have only
 have some of the tree for the campus bms prefix.  Is the storage not a repo?  Should it not be registering the root bms prefix?   Should I have / what do I call storage that is filling in part of the tree but don’t need to or can’t store all of it? </span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1/ if chilled water has its own prefix announcement, maybe one can find a way to attract all interests for chilled water data to the place for chilled water.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:12.0pt"><span style="font-size:11.0pt;font-family:Calibri"> </span><b>[jb] Yes, I think I understand that approach, but that’s not really the deployment that I’m thinking of... the scenario I have in mind is this.<o:p></o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b><o:p> </o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b>Two buildings, with data described like this:
<o:p></o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b><o:p> </o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b>/building-1/electrical/power/<time>
<o:p></o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b>which aggregates<o:p></o:p></b></p>
<p class="MsoNormal" style="margin-left:12.0pt"><b>/building-1/room-7/electrical/power/<time><o:p></o:p></b></p>
<p class="MsoNormal"><b>  /building-1/room-8/electrical/power/<time><o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">   <b>but there is also<o:p></o:p></b></p>
<p class="MsoNormal"><b>   /building-1/hvac/chilled_water_in/<time><o:p></o:p></b></p>
<p class="MsoNormal"><b>  etc. <o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>then, let’s say we want a root level repo that stores electrical data but not HVAC.   It provides some secondary advantage by being “close” to some processes that want to run analytics on all of the electrical data but don’t care about
 anything else.  It’s also run by the electrical folks and they don’t want to worry about anyone else’s data being in their system.    It also provides persistence or access scalability for that electrical data beyond what can be offered by the panels in the
 field. <o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>So, to follow what I understand of your comments:<o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>1) we need the repo to register every prefix with electrical data that it wishes to serve (which could be very long list of names at different granularity), or<o:p></o:p></b></p>
<p class="MsoNormal"><b>2) we need the data names to start with /electrical (which has other implications for forwarding interests based on building/campus layout), or<o:p></o:p></b></p>
<p class="MsoNormal"><b>3) we need NACK support in strategy(?) so that the repo could NACK prefixes it knows it’s not going to store,
<o:p></o:p></b></p>
<p class="MsoNormal"><b>or? <o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">3/ again one needs to think not just what one wants to put where, but also how forwarding can work well.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>[jb] Yes,  I understand this.  But I think that we are entering territory where what we are asking of people developing and deploying apps can be very sophisticated consideration of multiple intersecting requirements on namespaces....<o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>so when picking data names we have to consider:<o:p></o:p></b></p>
<p class="MsoNormal"><b>        1. what makes sense for the app internally (and the data itself)<o:p></o:p></b></p>
<p class="MsoNormal"><b>        2. how trust schema are embodied in the namespace<o:p></o:p></b></p>
<p class="MsoNormal"><b>        3. how access granularity / permissions may be embodied in the namespace<o:p></o:p></b></p>
<p class="MsoNormal"><b>        4. global / Internet / enterprise forwarding implications (e.g., forward interests for /building-1 towards building 1)
<o:p></o:p></b></p>
<p class="MsoNormal"><b>        5. what requests we want to make fast/efficient with simple interests  (e.g., where to put time in the namespace for time series)
<o:p></o:p></b></p>
<p class="MsoNormal"><b>        6. AND persistency/storage implications should the data at some point be stored persistently<o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>You’ve convinced me before to stop worrying about #4 and allow mechanisms to evolve in the network to take care of this, for the most part.  And that for #5, maybe apps should just publish in multiple namespaces, or use sync.  But #6
 seems to be in the same category... should we really have to worry about what node is making what data persistent in designing the namespace?  Can we do that a priori in real networks with lots of interacting nodes under the control of different developers,
 deployers, and users? <o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Here’s another example – Consider the smart home, where each subsystem that people buy from home depot (ala Phillips Hue) could have its own persistent storage that really doesn’t want to be involved in storage and publishing of data
 that’s not relevant to it..  but might (naively?) be thought to publish in the same prefix as each other...
<o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>For example, let’s say that you buy a few bulbs of the Phillips Hue system and you buy a few bulbs from another manufacturer.  Both register /<my-home-prefix>/usage/energy/lights because it’s a well-known convention, and use name discovery/sync
 techniques to pick non-conflicting names that make sense to users and apps.   <o:p>
</o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Let’s say from each manufacturer, you</b> <b>also get a wall-wart-sized repo that stores a year’s worth of energy consumption data for any device from Phillips (evaluated through some data signing/verification scheme)... and another
 from the other manufacturer.    <o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>So here, if we want those repos to have efficient forwarding of appropriate interests to them, the data (from the
<i>lights</i>) should have the manufacturer-specific subprefixes Phillips/ and Foo/ for the respective repos because we don’t want them to publish persistent data in a prefix they don’t have complete information for?   Even though we might not really want to
 enforce this manufacturer-centric data model on the energy consumption data of our lights necessarily?    (In fact the names exposed to the user / their apps for other purposes should ideally not have this at all.)<o:p></o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="background:white"><span style="font-size:11.0pt;font-family:Calibri">6) What are other requirements to be a ‘repo’?  (Alternatively, is there a canonical reference in the literature for the type of storage that constitutes a repo?)</span><span style="font-family:Calibri"><o:p></o:p></span></p>
</div>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">it does not really matter what we want to call something.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">there is no arbitrary requirement. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">as I said already, this is research, we have not done much playing with repo up to now.  It is all about figuring out how to make the system work in the best way it can.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>[jb] I’d argue that it’s just as important to figure out whether we can keep
<u>brittleness</u> and <u>hidden dependencies</u> out of app design and deployment that emerge from interdependencies between things ostensibly in the control of app developers (names) and those that are not (forwarding configuration, knowing whether ‘my’ repo
 knows everything in the tree it’s publishing in).... <o:p></o:p></b></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">my 2 cents,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Lixia<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</blockquote>
</div>
</body>
</html>