Re: [netmod] Mounting YANG-Defined Information from Remote Datastores

"Alexander Clemm (alex)" <alex@cisco.com> Mon, 25 March 2013 21:37 UTC

Return-Path: <alex@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D20CF21F8555 for <netmod@ietfa.amsl.com>; Mon, 25 Mar 2013 14:37:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, 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 jsKb4Go6TZnA for <netmod@ietfa.amsl.com>; Mon, 25 Mar 2013 14:37:31 -0700 (PDT)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) by ietfa.amsl.com (Postfix) with ESMTP id EA7F621F854D for <netmod@ietf.org>; Mon, 25 Mar 2013 14:37:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8159; q=dns/txt; s=iport; t=1364247451; x=1365457051; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=F01WswxomYQ1Uo0MMDIutwhhuxpAFZtZ/4eUTlW9YHk=; b=V/UONKWpU52Sl4edQ6bQNFYX1IsT7NruD9SB9Zz3kMhpXnStqv/G+xlc DE0Mngd2bO8M3veT+eiVsQFfw0IQIkQ0I++K6bhFFNqHmkW7LoR0ePceo GXjTmX9Q4PYvlMj/d+D7JNQVNfE1ZIzEmWBHOI59qMlFWBiy8SI73/lu/ o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgEFACPCUFGtJV2d/2dsb2JhbABDw3SBChZ0gh8BAQEEAQEBJBM0CwwEAgEIEQQBAQEKFAkHJwsUCQgBAQQOBQiIDAzDIo1OgRkmCwcGgllhA5gGiF2HCIMKgWwHFwYY
X-IronPort-AV: E=Sophos;i="4.84,907,1355097600"; d="scan'208";a="191346137"
Received: from rcdn-core-6.cisco.com ([173.37.93.157]) by rcdn-iport-3.cisco.com with ESMTP; 25 Mar 2013 21:37:30 +0000
Received: from xhc-rcd-x08.cisco.com (xhc-rcd-x08.cisco.com [173.37.183.82]) by rcdn-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id r2PLbUOd005991 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 25 Mar 2013 21:37:30 GMT
Received: from xmb-rcd-x05.cisco.com ([169.254.15.147]) by xhc-rcd-x08.cisco.com ([173.37.183.82]) with mapi id 14.02.0318.004; Mon, 25 Mar 2013 16:37:30 -0500
From: "Alexander Clemm (alex)" <alex@cisco.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [netmod] Mounting YANG-Defined Information from Remote Datastores
Thread-Index: Ac4nDbVuUnWlik2KRgGCoCl67WLA8QAMz5AAAAagufAADmxIgACBCd9g
Date: Mon, 25 Mar 2013 21:37:28 +0000
Message-ID: <DBC595ED2346914F9F81D17DD5C32B57183F552D@xmb-rcd-x05.cisco.com>
References: <DBC595ED2346914F9F81D17DD5C32B57183F37BD@xmb-rcd-x05.cisco.com> <CABCOCHSPh0oEoTenJrYCUt1HCu4KWiQb3DEq5N=AJ8ccEW8jdQ@mail.gmail.com> <DBC595ED2346914F9F81D17DD5C32B57183F4130@xmb-rcd-x05.cisco.com> <CABCOCHTKSmz2+Ynqz70vLRdyqSFK9q0LAWwTkfhT0=FAtkV16A@mail.gmail.com>
In-Reply-To: <CABCOCHTKSmz2+Ynqz70vLRdyqSFK9q0LAWwTkfhT0=FAtkV16A@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.154.200.121]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "Jan Medved (jmedved)" <jmedved@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Mounting YANG-Defined Information from Remote Datastores
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/netmod>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Mar 2013 21:37:33 -0000

Hi Andy,

Correct, if information in the server (S1 in this case) is updated, the change will show up in the places that mount that information (S2 and S3, in this case), just like changes made by a provisioning system to a server will show up in other applications when they obtain a view of the configuration information on a server.  

Our proposal does not make transactionality issues disappear, just like a provisioning system cannot guarantee transactionality to its clients if the underlying server(s) do not provide corresponding support as well.  These dependencies and what our proposal does and does not do are something we will make clearer in the next revision.  At the same time, with the mount proposal, it is always clear who the authorative copy/owner of data is where the data is maintained, validated, etc. There is an authorative copy, and authorative owner; this is not about "peers" sharing "equal copies" that need to be kept in synch etc.  Instead, any mount client is "just a client", similar to e.g. a service provisioning app.  Another way to look at a mount client is as a "proxy", retrieving and accessing information on another client's behalf.  The fact that the client "mounts" information from the server does not change anything for the server; it does not affect its model, nor how the server maintains its datastore.   The mount proposal does make it easier for such a client application to render information that it accesses from another system in a way that does not require to maintain and implement a separate set of data models that would in effect duplicate the same information.  

Regards
--- Alex

-----Original Message-----
From: Andy Bierman [mailto:andy@yumaworks.com] 
Sent: Friday, March 22, 2013 7:08 PM
To: Alexander Clemm (alex)
Cc: netmod@ietf.org; Eric Voit (evoit); Jan Medved (jmedved)
Subject: Re: [netmod] Mounting YANG-Defined Information from Remote Datastores

Hi,

Let me try a simple example:

There are 3 servers (S1, S2, S3):

      +------------------+
       |      S1        | --> /public
       +-----------------+


      +------------------+
       |      S2        | -->  mount(S1:/public)
       +-----------------+


      +------------------+
       |      S3        | --> mount(S1:/public)
       +-----------------+

S1 is the server that is sharing the subtree /public.
S2 and S3 both 'clients', and mount S1:/public in their configs.
Any changes to /public done on any server magically appear on the other 2 servers.  Correct or not?

IMO, NFS is a fairly heavy-weight protocol and making NETCONF as complex as NFS is not a feature.



Andy


On Fri, Mar 22, 2013 at 5:41 PM, Alexander Clemm (alex) <alex@cisco.com> wrote:
> Hello Andy,
>
> What we have in mind is a little less complicated than what you are concerned with.
>
> Think of a mount client as a client app, like other client apps.  This can be transparent to the owner/server of the datastore with the data items that are mounted.  The owner/server of the datastore with mounted data items really isn't affected at all, nor are other client applications that interact with the same server; the mount client constitutes just another client application.  The "ownership" of the data - the master copy, if you will - is not in question, and not changed by our proposal.  Validation still occurs in the original datastore.  The mount client merely "renders" the information that is retrieved, and operated on, in a way that makes it appear as if it were part of its own datastore.  However, the mount client now does have the capability to validate "its" configurations in its own datastore (the ones that it actually owns, not ones that are mounted) against other configurations in the network.  This is a problem today, where you need to rely on external applications to ensure network-wide consistency.
>
> Many uses for this only require providing visibility and the ability to retrieve information.  Only some of the use cases involve the need to actually modify information from remote.  Where that is the case, the mount client acts analogous to a provisioning application as far as the server is concerned.  Obviously, transactionality is an issue for a mount client, just like it is an issue to a provisioning application.  Where a client app is not able to obtain a needed lock, for instance, it cannot provide a lock to its own applications, which is really no different from the situation that a provisioning application that provisions a service across a network would face.
>
> Regards
> --- Alex
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: Friday, March 22, 2013 9:05 AM
> To: Alexander Clemm (alex)
> Cc: netmod@ietf.org; Eric Voit (evoit); Jan Medved (jmedved)
> Subject: Re: [netmod] Mounting YANG-Defined Information from Remote 
> Datastores
>
> Hi,
>
> I'm not sure I understand the use-cases here.
> This is certainly a different approach to network-wide config.
> This would seem to require that all the NETCONF servers sharing the same config subtree need to be highly coordinated, since operations on each server affect all the others.
>
> For example, if a client takes out a partial-lock on a shared node from server-1, it has to check all the other servers and the lock is shared across all servers. Access control would also be shared I guess.
>
> Do the contexts of shared nodes in candidate configs magically change or do they stay out-of-date if modified in another server?
> Does the entire running config in every server have to validate before any 1 server can commit a change to a shared node?
>
> The complexities this adds to the NETCONF transaction model and 
> confirmed commit procedure are dramatic.  The possibilities for 
> must/when expressions to evaluate differently in each server just adds 
> to the fun ;-)
>
> In previous discussions on network-wide configuration it was assumed a YANG model representing the network wide feature would be provided by a single server, and it is an implementation detail how that server interacts with other network devices.
>
> I do not see the advantages of treating the config like an NFS file system.
>
>
>
> Andy
>
>
> On Fri, Mar 22, 2013 at 8:00 AM, Alexander Clemm (alex) <alex@cisco.com> wrote:
>> Hi,
>>
>>
>>
>> We just posted last night a new Internet Draft "Mounting YANG-Defined 
>> Information from Remote Datastores", see 
>> http://tools.ietf.org/html/draft-clemm-netmod-mount-00.
>>
>>
>>
>> The draft addresses the problem of how to reference information from 
>> remote datastores, without needing to actually replicate that 
>> information (in its own model and datastore).  This helps address 
>> multiple problems, for example the issue of maintaining an 
>> authorative set of global configuration settings that are shared and 
>> exposed by multiple devices, and the issue of allowing one device to 
>> expose information about the network and other devices without need for replication, but in a federated way.
>>
>>
>>
>> The abstract reads as follows:
>>
>>    This document introduces a new capability that allows YANG 
>> datastores
>>
>>    to reference and incorporate information from remote datastores.
>>
>>    This is accomplished using a new YANG data model that allows to
>>
>>    define and manage datastore mount points that reference data nodes 
>> in
>>
>>    remote datastores.  The data model includes a set of YANG 
>> extensions
>>
>>    for the purposes of declaring such mount points.
>>
>>
>>
>> We are looking forward to discussing this with the working group and 
>> welcome your feedback.
>>
>>
>>
>> Regards
>>
>> --- Alex
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>