<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/2042/1/7/_/styles/combined.css?spaceKey=TOP&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/TOP/Replication+of+Configuration+Changes">Replication of Configuration Changes</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~kpfleming">Kevin P. Fleming</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        the diagram does in fact show the listener/cache for configuration, so change the tense of this sentence<br />
    </div>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >After each of the initialization sequence vignettes has completed, the sequence diagram shows a Configurator accessing the ConfigurationService interface via a proxy retrieved from the ServiceLocator. Since the StateReplicator registered a proxy for the Topic as the ConfigurationService, the configuration data is pushed to all of the components in the replica group, transparently to the Configurator.  <br> <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">While it isn&#39;t shown on the diagram, the</span> <span class="diff-added-words"style="background-color: #dfd;">The</span> StateReplicator <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">can</span> <span class="diff-added-words"style="background-color: #dfd;">will also</span> add its own listener to the Topic, which it <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">would</span> <span class="diff-added-words"style="background-color: #dfd;">will</span> use to maintain a cache of the current configuration state. If a component instance joins the replica group after a Configurator has provided some configuration elements to the group, this instance would need to be supplied those elements to bring it into synchronization with the other instances in the group. The State Replicator would use the cached configuration state to provide the &#39;current&#39; configuration to the newly-started instance, before joining it to the IceStorm Topic. This will ensure that the instance is properly configured before it receives any additional configuration elements forwarded through the Topic. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>| !ConfigReplication.png|border=1! | <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h3><a name="ReplicationofConfigurationChanges-Overview"></a>Overview</h3>
<p>The <a href="/wiki/display/TOP/State+Replication" title="State Replication">State Replication</a> page describes the general replication process used in Asterisk SCF component replica groups, and the <a href="/wiki/display/TOP/Configuration+Pattern" title="Configuration Pattern">Configuration</a> page describes the pattern used to provide configuration elements to Asterisk SCF components. This page describes how configuration elements can be pushed to all instances of a component in a replica group (i.e. the active instance, and any standby instance(s)).</p>

<h3><a name="ReplicationofConfigurationChanges-Description"></a>Description</h3>

<p>As seen in the sequence diagram below, the StateReplicator will create an IceStorm Topic during initialization that it can use to forward ConfigurationService operations to all component instances within a replica group. The StateReplicator registers a proxy for the Topic with the ServiceLocator, using the same parameters that the component would have used to register a proxy for its own ConfigurationService interface if it was configured to operate in standalone mode.</p>

<p>When an Asterisk SCF component instance is brought up as part of a replica group, it will register a proxy for its ConfigurationService interface with its StateReplicator, rather than directly with the ServiceLocator. The StateReplicator will subscribe the supplied proxy to the ConfigurationService forwarding Topic.</p>

<p>After each of the initialization sequence vignettes has completed, the sequence diagram shows a Configurator accessing the ConfigurationService interface via a proxy retrieved from the ServiceLocator. Since the StateReplicator registered a proxy for the Topic as the ConfigurationService, the configuration data is pushed to all of the components in the replica group, transparently to the Configurator. </p>

<p>The StateReplicator will also add its own listener to the Topic, which it will use to maintain a cache of the current configuration state. If a component instance joins the replica group after a Configurator has provided some configuration elements to the group, this instance would need to be supplied those elements to bring it into synchronization with the other instances in the group. The State Replicator would use the cached configuration state to provide the 'current' configuration to the newly-started instance, before joining it to the IceStorm Topic. This will ensure that the instance is properly configured before it receives any additional configuration elements forwarded through the Topic.</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="/wiki/download/attachments/13076604/ConfigReplication.png?version=3&amp;modificationDate=1306250985034" style="border: 1px solid black" /></span> </td>
</tr>
<tr>
<td class='confluenceTd'> <div class="" align="center"><b>Sequence Diagram of Configuration Replication</b></div>
 </td>
</tr>
</tbody></table>
</div>


    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://wiki.asterisk.org/wiki/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://wiki.asterisk.org/wiki/display/TOP/Replication+of+Configuration+Changes">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=13076604&revisedVersion=8&originalVersion=7">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/TOP/Replication+of+Configuration+Changes?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>