* [Bug 2035] ntpq -c mrulist sleeps 1 sec between queries, not 5 msec.
+* Documentation updates from Dave Mills.
(4.2.7p225) 2011/10/15 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p224) 2011/10/14 Released by Harlan Stenn <stenn@ntp.org>
<em></em>
<h3>Clock Cluster Algorithm</h3>
<p>Last update:
- <!-- #BeginDate format:En2m -->14-Oct-2011 1:59<!-- #EndDate -->
+ <!-- #BeginDate format:En2m -->17-Oct-2011 16:11<!-- #EndDate -->
UTC</p>
<hr>
<p>The clock cluster algorithm processes the truechimers produced by the clock select algorithm to produce the survivors used by the mitigation algorithms to discipline the system clock. It operates in a series of rounds, where at each round the truechimer furthest from the offset centroid is pruned from the population. The rounds are continued until a specified termination condition results. This page discusses the algorithm in detail.</p>
-<p>First, the truechimer candidates are saved on a list of entries sorted by root synchronization distance. Recall that this distance is equal to the root dispersion plus half the root delay. For the <em>i</em>th entry on the list, a statistic called the <em>select jitter</em> is calculated as follows. Let</p>
+<p>First, the truechimer candidates are saved on a list sorted by increasing root distance <font face="symbol">l</font>(<em>i</em>) (<em>i </em>= 1, ..., <em>n)</em>, where <em>n</em> is the number of entries. Recall that the root distance is equal to the root dispersion plus half the root delay. For the <em>i</em>th entry on the list, a statistic called the <em>select jitter</em> is calculated as follows. Let</p>
<div align="center">
<p><em>d<sub>i</sub></em>(<em>j</em>) = <font face="symbol">q</font>(<em>j</em>) - <font face="symbol"> q</font>(<em>i</em>),</p>
</div>
-<p> where<font face="symbol"> q</font>(<em>i</em>) is the peer offset of the <em>i</em>th entry and <font face="symbol">q</font>(<em>j</em>) is the peer offset of the <em>j</em>th entry, both produced by the clock filter algorithm. Then, the select jitter <font face="symbol">j</font><sub>S</sub>(<em>i</em>) of the <em>i</em>th entry is the root distance of the <em>i</em>th entry times the RMS sum of <em>d<sub>i</sub></em>(<em>j</em>)<em> </em>as <em>j</em> range over the list. For the purpose of notation in the example to follow, let <font face="symbol">j</font><sub>R</sub>(<em>i</em>) be the peer jitter computed by the clock filter algorithm for the <em>i</em>th entry. In general, the <em>expected error</em> statistic for the <em>i</em>th entry is the RMS sum of these two components, but that is not needed by the clock cluster algorithm.</p>
-<p>The object at each round is to prune the entry with the largest select jitter until the termination condition is met. Note that the select jitter must be recomputed at each round, but the peer jitter does not change. At each round the remaining entries on the list represent the survivors of that round. If the survivor to be pruned is preempt able and the number of survivors is greater than the <em>maxclock threshold</em>, the association is demobilized. This is useful in the automatic server discovery schemes described on the <a href="assoc.html">Association Management</a> page. The maxclock threshold default is 10, but it can be changed using the <tt>maxclock</tt> option of the <a href="miscopt.html#tos"><tt>tos</tt></a> command. Further pruning is subject to the following termination conditions, but no associations will be demobilized</p>
+<p> where<font face="symbol"> q</font>(<em>i</em>) is the peer offset of the <em>i</em>th entry and <font face="symbol">q</font>(<em>j</em>) is the peer offset of the <em>j</em>th entry, both produced by the clock filter algorithm. Then, the select jitter <font face="symbol">j</font><sub>S</sub>(<em>i</em>) of the <em>i</em>th entry is the root mean square (RMS) of the <em>d<sub>i</sub></em>(<em>j</em>) as <em>j</em> ranges from 1 to <em>n</em>. The metric used by the cluster algorithm is the value <font face="symbol">l</font>(<em>i</em>) <font face="symbol">j</font><sub>S</sub>(<em>i</em>) for the <em>i</em>th entry. At each round the entry with maximum metric is discarded and the number of entries <em>n</em> reduced by one. For the purpose of notation in the example to follow, let <font face="symbol">j</font><sub>R</sub>(<em>i</em>) be the peer jitter computed by the clock filter algorithm for the <em>i</em>th entry.</p>
+<p>The object at each round is to prune the entry with the largest metric until the termination condition is met. Note that the select jitter must be recomputed at each round, but the peer jitter does not change. At each round the remaining entries on the list represent the survivors of that round. If the candidate to be pruned is preempt able and the number of candidates is greater than the <em>maxclock threshold</em>, the association is demobilized. This is useful in the schemes described on the <a href="discover.html">Automatic Server Discovery Schemes</a> page. The maxclock threshold default is 10, but it can be changed using the <tt>maxclock</tt> option of the <a href="miscopt.html#tos"><tt>tos</tt></a> command. Further pruning is subject to the following termination conditions, but no associations will be automatically demobilized.</p>
<p>The termination condition has two parts. First, if the number of candidates is not greater than the<em> </em><em>minclock threshold</em> set by the <tt>minclock</tt> option of the <a href="miscopt.html#tos"><tt>tos</tt></a> command, the pruning process terminates. The<tt> minclock</tt> default is 3, but can be changed to fit special conditions, as described on the <a href="prefer.html">Mitigation Rules and the prefer Keyword</a> page.</p>
<div align="center"><img src="pic/flt7.gif" alt="gif">
<p>Figure 1. Cluster Algorithm</p>
</div>
-<p>The second termination condition is more intricate. Figure 1 shows a round where a candidate of (a) is pruned to yield the candidates of (b). Let <font face="symbol">j</font><sub><em>max</em></sub> be the maximum select jitter and <font face="symbol">j</font><sub><em>min</em></sub> be the minimum peer jitter over all entries on the list. In (a), candidate 1 has the highest select jitter, so <font face="symbol">j</font><sub><em>max</em></sub> = <font face="symbol"> j</font><sub>S</sub>(1). Candidate 4 has the lowest peer jitter, so <font face="symbol">j</font><sub><em>min</em></sub> = <font face="symbol">j</font><sub>R</sub>(4). Since <font face="symbol">j</font><sub><em>max</em></sub> > <font face="symbol">j</font><sub><em>min</em></sub>, select jitter dominates total jitter,<em> so </em>the algorithm prunes candidate 1. In (b), <font face="symbol">j</font><sub><em>max</em></sub> = <font face="symbol">j</font><sub>S</sub>(3) and <font face="symbol">j</font><sub><em>min </em></sub>=<font face="symbol"> j</font><sub>R</sub>(4). Since <font face="symbol">j</font><sub><em>max</em></sub> < <font face="symbol">j</font><sub><em>min</em></sub>, pruning additional candidates will not significantly reduce total jitter. So, the algorithm terminates with candidates 2, 3 and 4 as survivors.</p>
+<p>The second termination condition is more intricate. Figure 1 shows a round where a candidate of (a) is pruned to yield the candidates of (b). Let <font face="symbol">j</font><sub><em>max</em></sub> be the maximum select jitter and <font face="symbol">j</font><sub><em>min</em></sub> be the minimum peer jitter over all entries on the list. In (a), candidate 1 has the highest select jitter, so <font face="symbol">j</font><sub><em>max</em></sub> = <font face="symbol"> j</font><sub>S</sub>(1). Candidate 4 has the lowest peer jitter, so <font face="symbol">j</font><sub><em>min</em></sub> = <font face="symbol">j</font><sub>R</sub>(4). Since <font face="symbol">j</font><sub><em>max</em></sub> > <font face="symbol">j</font><sub><em>min</em></sub>, select jitter dominates peer jitter,<em> so </em>the algorithm prunes candidate 1. In (b), <font face="symbol">j</font><sub><em>max</em></sub> = <font face="symbol">j</font><sub>S</sub>(3) and <font face="symbol">j</font><sub><em>min </em></sub>=<font face="symbol"> j</font><sub>R</sub>(4). Since <font face="symbol">j</font><sub><em>max</em></sub> < <font face="symbol">j</font><sub><em>min</em></sub>, pruning additional candidates will not significantly reduce select jitter. So, the algorithm terminates with candidates 2, 3 and 4 as survivors.</p>
<hr>
<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
</body>
document.write("\
<table><tr>\
-<td width='50%' ><img src='../icons/home.gif' align='middle' alt='gif'>\
+<td width='33%' align='center'><img src='../icons/home.gif' align='middle'>\
<a href='../index.html'>Home Page</a></td>\
-<td width='50%' ><img src='../icons/mail2.gif' align='middle' alt='gif'>\
-<a href='http://support.ntp.org/bin/view/Main/ContactInformation'>Contacts</a></i></td>\
+<td width='33%' ><img src='../icons/sitemap.png' align='middle'>\
+<a href='../sitemap.html'>Site Map</a></td>\
+<td width='33%' ><img src='../icons/mail2.gif' align='middle'>\
+<a href='http://www.ntp.org/contact'>Contacts</a></td>\
</tr></table>")
-document.write("<p>Configuration Commands and Options</p><ul>\
-<li class='inline'><a href='accopt.html'>Access Control Commands and Options</a><br>\
-<li class='inline'><a href='authopt.html'>Authentication Commands and Options</a><br>\
-<li class='inline'><a href='miscopt.html'>Miscellaneous Commands and Options</a><br>\
-<li class='inline'><a href='monopt.html'>Monitoring Commands and Options</a><br>\
-<li class='inline'><a href='clockopt.html'>Reference Clock Commands and Options</a><br>\
-<li class='inline'><a href='confopt.html'>Server Commands and Options</a><br>\
-<li class='inline'><a href='sitemap.html'>Site Map</a>\</li>
-</ul>")
+document.write("\
+<table><tr>\
+<td width='50%' ><img src='icons/home.gif' align='middle' alt='gif'>\
+<a href='index.html'>Home Page</a></td>\
+<td width='50%' ><img src='icons/mail2.gif' align='middle' alt='gif'>\
+<a href='http://www.ntp.org/contact'>Contacts</a></i></td>\
+</tr></table>")
document.write("<p>Server Commands and Options</p><ul>\
<li class='inline'><a href='confopt.html#server'>server - configure client association</a></li>\
-<li class='inline'><a href='confopt.html#server'>peer - configure symmetric peer association</a></li>\
-<li class='inline'><a href='confopt.html#server'>broadcast - configure broadcast server association</a></li>\
-<li class='inline'><a href='confopt.html#server'>manycastclient - configure manycast client association</a></li>\
-<li class='inline'><a href='confopt.html#server'>pool - configure pool association</a></li>\
-<li class='inline'><a href='confopt.html#server'>unpeer - remove association</a></li>\
+<li class='inline'><a href='confopt.html#peer'>peer - configure symmetric peer association</a></li>\
+<li class='inline'><a href='confopt.html#broadcast'>broadcast - configure broadcast server association</a></li>\
+<li class='inline'><a href='confopt.html#manycastclient'>manycastclient - configure manycast client association</a></li>\
+<li class='inline'><a href='confopt.html#pool'>pool - configure pool association</a></li>\
+<li class='inline'><a href='confopt.html#unpeer'>unpeer - remove association</a></li>\
<li class='inline'><a href='confopt.html#broadcastclient'>broadcastclient - enable broadcast client</a></li>\
<li class='inline'><a href='confopt.html#manycastserver'>manycastserver - enable manycast server</a></li>\
<li class='inline'><a href='confopt.html#multicastclient'>multicastclient - enable multicast client</a></li>\
document.write("\\r
-
<table><tr>\\r
-
-<td width='50%' ><img src='icons/home.gif' align='middle' alt='gif'>\\r
-
+<td width='33%' align='center'><img src='icons/home.gif' align='middle'>\
<a href='index.html'>Home Page</a></td>\\r
-
-<td width='50%' ><img src='icons/mail2.gif' align='middle' alt='gif'>\\r
-
-<a href='http://support.ntp.org/bin/view/Main/ContactInformation'>Contacts</a></i></td>\
+<td width='33%' align='center'><img src='icons/sitemap.png' align='middle'>\
+<a href='sitemap.html'>Site Map</a></td>\
+<td width='33%' align='center'><img src='icons/mail2.gif' align='middle'>\
+<a href='http://www.ntp.org/contact'>Contacts</a></td>\
</tr></table>")