[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unified transaction model proposal



On Fri, Apr 23, 2004 at 01:00:53AM -0700, Andy Bierman wrote:
> Here's something new to throw darts at... a proposal for
> a unified transaction model (for target == <candidate> or <running>)
> -------------------------------------------------------------------
> 
>  <lock>
>  <edit-config> +   // 1 or more
>  <commit> OR <discard-changes> 
>  <unlock>
> 
> where:
> 
>    commit =
>      - if #candidate then 
>          attempt commit of <candidate> to <running>  
>      - release any 'rollback' resources the agent was using
>        for this transaction.  
>      - if #distinct-startup then
>          copy(running, startup)  
> 
>    discard-changes =
>      - if #candidate then 
>          target is <candidate>
>        else 
>          target is <running>
>      - remove all changes made to the target by this transaction
>        since the lock operation completed
> 
> --------------------------------------------------------------------------
> 
> IMO, this would greatly simplify the transaction model
> and make application development easier.  It also makes
> network-wide config updates easier on the application.
> 
> The changes to the protocol operations are:
> 
>   1) <commit> is part of base protocol
>      - confirmed-commit still a #candidate extension
>        and available if #confirmed-commit present
>   2) <discard-changes> is part of the base protocol
>      - this is essentially a rollback of multiple
>        edit-config operations, which is needed in
>        addition to rollback-on-error 

Perhaps this should then be named "rollback" (or "commit" be changed
to "apply-changes" ;-).

>   3) for implementations that have target==<running>,
>      a rollback capability is mandatory.  This is a
>      big requirement and raises the bar for NETCONF,
>      but this will make the protocol easier to use
>      for all application developers.  

Just for clarification: I assume correctly that commit/rollback
only applies to changes created via <edit-config> and not to any
other changes (e.g. <copy-config> or <delete-config) that may be
made since the lock was established.

/js

-- 
Juergen Schoenwaelder		    International University Bremen
<http://www.eecs.iu-bremen.de/>	    P.O. Box 750 561, 28725 Bremen, Germany

--
to unsubscribe send a message to netconf-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/netconf/>