<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cas-group.net/index.php?action=history&amp;feed=atom&amp;title=Election_Algorithm</id>
	<title>Election Algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cas-group.net/index.php?action=history&amp;feed=atom&amp;title=Election_Algorithm"/>
	<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;action=history"/>
	<updated>2026-07-19T17:06:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=1238&amp;oldid=prev</id>
		<title>Admin: Reverted edits by Eboxytezi (Talk) to last version by Jfromm</title>
		<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=1238&amp;oldid=prev"/>
		<updated>2011-02-11T21:43:52Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/index.php?title=Special:Contributions/Eboxytezi&quot; title=&quot;Special:Contributions/Eboxytezi&quot;&gt;Eboxytezi&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Eboxytezi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Eboxytezi (page does not exist)&quot;&gt;Talk&lt;/a&gt;) to last version by &lt;a href=&quot;/index.php?title=User:Jfromm&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Jfromm (page does not exist)&quot;&gt;Jfromm&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:43, 11 February 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to any other.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to any other.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/del&gt;== Applications ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Applications ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The election of a special coordinator is required in general&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The election of a special coordinator is required in general&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* holding a primary or master copy of replicated data, or selecting a primary backup&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* holding a primary or master copy of replicated data, or selecting a primary backup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An election of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;quot;&lt;/del&gt;values&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;quot; &lt;/del&gt;instead of coordinators is  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An election of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/ins&gt;values&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; &lt;/ins&gt;instead of coordinators is  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;necessary if sensors offer unreliable data, for instance  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;necessary if sensors offer unreliable data, for instance  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;voting on the value of a sensor. This problem is related  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;voting on the value of a sensor. This problem is related  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to the agreement or consensus problem.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to the agreement or consensus problem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div style=&quot;background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;&quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=[http://ocyxanebyla.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=[http://ocyxanebyla.co.cc CLICK HERE]=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=941&amp;oldid=prev</id>
		<title>Eboxytezi at 00:18, 18 November 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=941&amp;oldid=prev"/>
		<updated>2010-11-18T00:18:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:18, 17 November 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to any other.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to any other.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Applications ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;== Applications ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The election of a special coordinator is required in general&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The election of a special coordinator is required in general&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* holding a primary or master copy of replicated data, or selecting a primary backup&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* holding a primary or master copy of replicated data, or selecting a primary backup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An election of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/del&gt;values&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; &lt;/del&gt;instead of coordinators is  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An election of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;quot;&lt;/ins&gt;values&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;quot; &lt;/ins&gt;instead of coordinators is  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;necessary if sensors offer unreliable data, for instance  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;necessary if sensors offer unreliable data, for instance  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;voting on the value of a sensor. This problem is related  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;voting on the value of a sensor. This problem is related  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to the agreement or consensus problem.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;to the agreement or consensus problem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div style=&quot;background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=[http://ocyxanebyla.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=[http://ocyxanebyla.co.cc CLICK HERE]=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eboxytezi</name></author>
	</entry>
	<entry>
		<id>https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=167&amp;oldid=prev</id>
		<title>Jfromm: New page: An election algorithm can be used in a distributed system to select a single coordinator. When the election is terminated, there is only one node that calls itself t...</title>
		<link rel="alternate" type="text/html" href="https://wiki.cas-group.net/index.php?title=Election_Algorithm&amp;diff=167&amp;oldid=prev"/>
		<updated>2008-10-02T19:57:51Z</updated>

		<summary type="html">&lt;p&gt;New page: An election algorithm can be used in a &lt;a href=&quot;/index.php?title=Distributed_System&quot; title=&quot;Distributed System&quot;&gt;distributed system&lt;/a&gt; to select a single coordinator. When the election is terminated, there is only one node that calls itself t...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;An election algorithm can be used in a [[Distributed System|distributed system]]&lt;br /&gt;
to select a single coordinator. When the election is&lt;br /&gt;
terminated, there is only one node that calls itself&lt;br /&gt;
the coordinator or declares itself as the leader, and &lt;br /&gt;
the other nodes know the identity of this coordinator.&lt;br /&gt;
The problem is to start from a configuration where all &lt;br /&gt;
processes are in the same state, and despite failures&lt;br /&gt;
and unreliable proceeses they should finally arrive at &lt;br /&gt;
a configuration where exactly one node or process is&lt;br /&gt;
in the state leader and all other process are in the&lt;br /&gt;
state non-leader. The election problem is often considered &lt;br /&gt;
in fully connected networks, where every node is connected&lt;br /&gt;
to every other node so that any node may send a message &lt;br /&gt;
to any other.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
The election of a special coordinator is required in general&lt;br /&gt;
to make a central decision, to initiate or to organize something.&lt;br /&gt;
A coordinator is needed in distributed systems in particular &lt;br /&gt;
for&lt;br /&gt;
&lt;br /&gt;
* reorganization and reconfiguration of the system&lt;br /&gt;
* centralized solutions (for example centralized mutual exclusion, managing or monitoring a token)&lt;br /&gt;
* holding a primary or master copy of replicated data, or selecting a primary backup&lt;br /&gt;
&lt;br /&gt;
An election of &amp;quot;values&amp;quot; instead of coordinators is &lt;br /&gt;
necessary if sensors offer unreliable data, for instance &lt;br /&gt;
voting on the value of a sensor. This problem is related &lt;br /&gt;
to the agreement or consensus problem.&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
&lt;br /&gt;
Many algorithms are known for the election problem&lt;br /&gt;
(for instance from LeLann, Chang-Roberts, Dolev-Klawe-Rodeh, etc.).&lt;br /&gt;
They are very similar to &amp;quot;FindMax&amp;quot; problems, where the&lt;br /&gt;
minimal or maximal value among a set of distributed nodes&lt;br /&gt;
has to be determined. They can be roughly distinguished in those &lt;br /&gt;
for synchronous systems and those for asynchronous systems.&lt;br /&gt;
Synchronous systems are of course a bit easier too handle.&lt;br /&gt;
&lt;br /&gt;
=== Election in Synchronous Networks ===&lt;br /&gt;
&lt;br /&gt;
==== Afek and Gafni ====&lt;br /&gt;
&lt;br /&gt;
In synchronous systems and complete networks with diameter one,&lt;br /&gt;
there is a trivial algorithm with O(1) rounds and O(n^2) messages.&lt;br /&gt;
Each node sends messages to all its neighbors, and&lt;br /&gt;
all nodes elect the node with the highest (or lowest)&lt;br /&gt;
ID as the leader. In these systems, the election problem is synonymous &lt;br /&gt;
with the selection a leader in a Clique. A clique is a complete &lt;br /&gt;
graph with diameter one. &lt;br /&gt;
&lt;br /&gt;
Afek and Gafni showed that the number of messages can be &lt;br /&gt;
reduced by slowing down the rate in which nodes send messages&lt;br /&gt;
to their neighbors. This means the message complexity&lt;br /&gt;
can be reduced only if the time complexity is increased.&lt;br /&gt;
The algorithm from Afek and Gafni (1985) needs&lt;br /&gt;
O(log n) rounds, O(n*log n) messages. It works roughly like&lt;br /&gt;
this: every candidate has a set of links incident to the&lt;br /&gt;
candidate. In every round each candidate tries to &amp;quot;capture&amp;quot;&lt;br /&gt;
a bit more from the remaining nodes of this set.&lt;br /&gt;
Every alive candidate tries to capture 2^n (remaining) nodes in &lt;br /&gt;
round n. Only nodes which receive all acknowledgements and capture all&lt;br /&gt;
2^n nodes survive, the others give up and &amp;quot;quit&amp;quot; the race already. &lt;br /&gt;
The node with the highest ID who captures all the nodes wins.&lt;br /&gt;
&lt;br /&gt;
==== Bully Algorithm ====&lt;br /&gt;
&lt;br /&gt;
One of the classic election algorithms in distributed systems is &lt;br /&gt;
the &amp;#039;&amp;#039;&amp;#039;Bully Algorithm&amp;#039;&amp;#039;&amp;#039;. It is also an algorithm for complete&lt;br /&gt;
networks with diameter one, and it is first mentioned by Hector Garcia-Molina &lt;br /&gt;
in 1982 in his paper &amp;quot;Elections in a Distributed Computing System&amp;quot; (*),&lt;br /&gt;
together with the &amp;quot;Invitation Election&amp;quot; algorithm.&lt;br /&gt;
As Garcia-Molina says, it is named Bully because &amp;quot;the node with the&lt;br /&gt;
highest identification number forces the nodes with smaller&lt;br /&gt;
identification numbers into accepting it as coordinator&amp;quot;.&lt;br /&gt;
The process with the highest idenfication number or ID among&lt;br /&gt;
the active nodes always becomes the coordinator.&lt;br /&gt;
&lt;br /&gt;
The first part of the algorithm works as follows: each node in the system &lt;br /&gt;
is assigned a unique identification number or ID. If a node N&lt;br /&gt;
notices that the coordinator is no longer active&lt;br /&gt;
it initiates an election and attempts to contact all&lt;br /&gt;
nodes with higher priority:&lt;br /&gt;
&lt;br /&gt;
 1) If a node N notices that the coordinator is no longer active&lt;br /&gt;
    then it sends an ELECTION message to all processes with higher numbers. &lt;br /&gt;
 2) If no one responds after a time limit or time-out, N wins the election and becomes coordinator.&lt;br /&gt;
    It can assume that all nodes with higher priority have failed. &lt;br /&gt;
 3) If one of the nodes with higher number responds, then N gives up and waits until&lt;br /&gt;
    the node with higher number takes over and becomes the new coordinator.&lt;br /&gt;
&lt;br /&gt;
In the second part of the algorithm, the winner must inform all nodes that it is the &lt;br /&gt;
new coordinator, and sends out a &amp;quot;COORDINATOR&amp;quot; or &amp;quot;I am elected&amp;quot; messages.&lt;br /&gt;
&lt;br /&gt;
==== Santoro Rotem Algorithm ====&lt;br /&gt;
&lt;br /&gt;
Nicola Santoro and Doron Rotem proposed in 1985 an algorithm for election&lt;br /&gt;
in synchronous networks who assumes a simultaneous start (all processes wake-up&lt;br /&gt;
or start at the same pulse 0) and a known network size. The simple algorithm&lt;br /&gt;
is described in the book of Gerard Tel (chapter 12.2). It is based on the diameter &lt;br /&gt;
of the network and the idea that the ID of a node can be used as a measure&lt;br /&gt;
for the delay time of messages. Each node has a unique ID, and the number of nodes &lt;br /&gt;
is an upper bound on the network diameter D, which can be determined if the network &lt;br /&gt;
size is known.&lt;br /&gt;
&lt;br /&gt;
It takes D pulses to flood or broadcast a message through the entire network.&lt;br /&gt;
If every node with identity/identifier number ID tries to flood the network &lt;br /&gt;
at the pulse (ID*D), exactly one message is flooded from the node with the smallest &lt;br /&gt;
identity number ID_min. At that time, all nodes have already indirectly flooded &lt;br /&gt;
the message &amp;quot;my ID exceeds ID_min&amp;quot; by being quiet - because they have not &lt;br /&gt;
initiated the flooding of a message.&lt;br /&gt;
 &lt;br /&gt;
 Each node waits until a message arrives, or the pulse count has reached ID*D&lt;br /&gt;
 - if a message arrives at node i from a node j before the pulse count has &lt;br /&gt;
   reached ID*D (where ID is the number of i and D the diameter), &lt;br /&gt;
   the node j is elected from the node i as a leader&lt;br /&gt;
 - else the node i initiates a flooding itself and becomes the new leader&lt;br /&gt;
&lt;br /&gt;
An example: If we assume that the diameter of the network D=9, then it&lt;br /&gt;
takes D=9 pulses to flood the entire network. A node with ID=1 would start&lt;br /&gt;
a flooding a pulse 9, a node with ID=2 would start a flooding at pulse 18.&lt;br /&gt;
If no message have arrived at pulse 27, the node with ID=3 can be sure&lt;br /&gt;
no node with lower ID exists, and starts a flooding itself at pulse number &lt;br /&gt;
ID_min*D=3*9=27. By the pulse 36, all nodes know that the node with ID=3 is&lt;br /&gt;
the new leader.&lt;br /&gt;
&lt;br /&gt;
=== Election in Asynchronous Networks ===&lt;br /&gt;
&lt;br /&gt;
Most algorithms for the election problem in asynchronous networks work&lt;br /&gt;
with &amp;quot;candidates&amp;quot; who try to capture and invite as many nodes as &lt;br /&gt;
possible. The candidate which has succeeded in capturing or inviting&lt;br /&gt;
all nodes becomes the leader.&lt;br /&gt;
&lt;br /&gt;
==== Invitation Algorithm ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Invitation Election Algorithm&amp;quot; was discovered by &lt;br /&gt;
Hector Garcia-Molina in 1982 in his paper &amp;quot;Elections in a Distributed Computing System&amp;quot; (*),&lt;br /&gt;
together with the &amp;quot;Bully Algorithm&amp;quot;. It is based on two main ideas:&lt;br /&gt;
&lt;br /&gt;
 1) after a coordinator failure, recovering nodes form single groups&lt;br /&gt;
 2) coordinators periodically try to combine their group with other groups&lt;br /&gt;
    in order to form larger groups&lt;br /&gt;
&lt;br /&gt;
As Garcia-Molina says, &amp;quot;in the Bully Algorithmus, the active node with the&lt;br /&gt;
highest priority &amp;quot;forces&amp;quot; all other nodes to refrain from trying to&lt;br /&gt;
become coordinator&amp;quot;, so that the highest priority node wins the election.&lt;br /&gt;
Instead of forcing nodes, in the Invitation Election Algorithm nodes who&lt;br /&gt;
wish to become coodinator will &amp;quot;invite&amp;quot; other nodes to join it in forming&lt;br /&gt;
a new group. A group is a set of nodes that agree on a leader.&lt;br /&gt;
&lt;br /&gt;
The combination and unification to larger groups works like this:&lt;br /&gt;
periodically each leader sends messages to every other node asking whether&lt;br /&gt;
that node is a leader, and if other nodes reply that they are leaders, the &lt;br /&gt;
node pauses for a time inversely proportional to its priority, and then tries &lt;br /&gt;
to invite the other leaders to join the group. Nodes with lower priority defer &lt;br /&gt;
sending out their invitations for a longer period in order to prevent all &lt;br /&gt;
group coordinators from sending out invitations at once. A leader which &lt;br /&gt;
receives an invitation from a node with higher priority (directly or indirectly) &lt;br /&gt;
sends an accept message to the proposed leader of the group.&lt;br /&gt;
&lt;br /&gt;
The stepwise unification of groups and fragments in the &amp;quot;Invitation Election&lt;br /&gt;
Algorithm&amp;quot; is very similar to the GHS algorithm from Gallager, Humblet and Spira. &lt;br /&gt;
The GHS algorithm is a [[Distributed Algorithm]] for finding a &lt;br /&gt;
minimum weight spanning tree, see [[Distributed Graph Algorithm]].&lt;br /&gt;
During the computation of the GHS algorithm, initially the collection of&lt;br /&gt;
fragments contains each node as a one-node fragment, and the fragments&lt;br /&gt;
are step by step combined with other fragments (the lowest-weight outgoing&lt;br /&gt;
edge is essential). The algorithm terminates when only one fragment or group &lt;br /&gt;
remains.&lt;br /&gt;
&lt;br /&gt;
Korach, Moran and Zaks compare these fragments or groups to kingdoms.&lt;br /&gt;
The process of joining fragments or groups becomes then a unification&lt;br /&gt;
of kingdoms. In their paper &amp;quot;Tight lower and upper bounds for a class of distributed &lt;br /&gt;
algorithms for a complete network of processors&amp;quot; (1984) they describe an election &lt;br /&gt;
algorithm where &amp;quot;a king is trying to increase his kingdom by sending messages &lt;br /&gt;
towards other kings (possibly through their citizens), asking them to join,&lt;br /&gt;
together with their kingdoms, his kingdom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== A,B,C (Afek and Gafni) and D,E,F (Singh) ====&lt;br /&gt;
&lt;br /&gt;
Afek and Gafni (1985) presented a family or sequence of algorithms&lt;br /&gt;
for the election problem in asynchronous complete networks.&lt;br /&gt;
They described three algorithms named A, B and C, which&lt;br /&gt;
differ in the capturing and elimination rules, i.e. in &lt;br /&gt;
the way that candidates determine their level&lt;br /&gt;
and in the rules candidates use to eliminate each other.&lt;br /&gt;
The central element is a variable &amp;quot;level&amp;quot; which is used &lt;br /&gt;
to estimate the number of nodes the candidates have already &lt;br /&gt;
captured.&lt;br /&gt;
&lt;br /&gt;
In algorithm A, the level of a candidate is the number of&lt;br /&gt;
nodes it has captured, whereas in algorithm B the level is&lt;br /&gt;
the number of candidates it has killed. According to Afek&lt;br /&gt;
and Gafni (1985), algorithm A achieves a better time &lt;br /&gt;
complexity while algorithm B achieves a better message&lt;br /&gt;
complexity. In algorithm C, candidates use a combination&lt;br /&gt;
of algorithm A and B to attain the time complexity of A&lt;br /&gt;
(which is linear or O(n)) and message complexity of B.&lt;br /&gt;
&lt;br /&gt;
The algorithm or protocols A, B and C work roughly like this: &lt;br /&gt;
candidate nodes try to capture other nodes in a sequential &lt;br /&gt;
manner by sending capture messages on the incident edges &lt;br /&gt;
one at a time. The goal is to capture all nodes, and a candidate &lt;br /&gt;
that is successful in capturing all other nodes is elected &lt;br /&gt;
the leader (this is not necessary the node with the highest&lt;br /&gt;
ID, as we will see later, only the node with the most&lt;br /&gt;
captured nodes or killed candidates).&lt;br /&gt;
A candidate i sends its identity and a variable, &lt;br /&gt;
level_i, in the capture message to contest with other nodes&lt;br /&gt;
(level_i is the number of nodes which i has captured or the&lt;br /&gt;
number of other candidates it has killed so far). &lt;br /&gt;
If a capture message from i reaches a node j which has not &lt;br /&gt;
yet been captured, and (level_i, i) &amp;gt;= (level_j, j) &lt;br /&gt;
(comparison in a lexicographical order) then i captures j, &lt;br /&gt;
otherwise i is killed. If j is a captured node, then i has&lt;br /&gt;
to kill j&amp;#039;s owner before claiming j. If i is finally successful &lt;br /&gt;
in capturing and has (if required) killed j&amp;#039;s owner, &lt;br /&gt;
then it increments level_i and proceeds with its conquest &lt;br /&gt;
by sending a capture message to another node.&lt;br /&gt;
&lt;br /&gt;
These algorithms are early bird algorithms&lt;br /&gt;
(named after the proverb &amp;quot;the early bird catches the worm&amp;quot;).&lt;br /&gt;
Normally in elections the node with the highest&lt;br /&gt;
or lowest ID is elected. In the asynchronous algorithms&lt;br /&gt;
A, B and C the node with the highest ID might be &amp;quot;killed.&amp;quot;&lt;br /&gt;
If the level of a candidate is the total number of&lt;br /&gt;
killed candidates, it is possible that the node&lt;br /&gt;
or process with the highest ID is killed if it has slow&lt;br /&gt;
connections and if its messages arrive very late -&lt;br /&gt;
since it is an asynchronous network, the messages&lt;br /&gt;
may have an arbitrary delay.&lt;br /&gt;
Other nodes with lower ID but faster connections&lt;br /&gt;
may have already a higher level because they have killed&lt;br /&gt;
or captured more nodes earlier. This implies that the&lt;br /&gt;
node with the highest ID does not always win the election,&lt;br /&gt;
rather the node with the fastest connections. It is in fact&lt;br /&gt;
impossible  to predict the winner at all, because usually some kind &lt;br /&gt;
of &amp;quot;race condition&amp;quot; is involved, where the result shows critical&lt;br /&gt;
dependence on the relative timing of events.&lt;br /&gt;
&lt;br /&gt;
Gurdip Singh (1992) proposed additional algorithms named&lt;br /&gt;
D, E and F.&lt;br /&gt;
&lt;br /&gt;
== Election and Mutual Exlcusion ==&lt;br /&gt;
&lt;br /&gt;
As Garcia-Molina says, electing a coordinator is similar to the mutual&lt;br /&gt;
exclusion of a processes if there are no communication failures,&lt;br /&gt;
because &amp;quot;we can think of being coordinator as having entered a &lt;br /&gt;
special critical region&amp;quot; (*). He argues that &amp;quot;in the election, &lt;br /&gt;
the nodes (i.e. processes) compete with each other so that only &lt;br /&gt;
one node enters the critical region and becomes coordinator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Yet there are also major differences to the problem of mutual&lt;br /&gt;
exclusion. Garcia-Molina lists fairness, failure and information (*).&lt;br /&gt;
In mutual exclusion &amp;#039;&amp;#039;&amp;#039;fairness&amp;#039;&amp;#039;&amp;#039; is important: every node or process &lt;br /&gt;
should eventually be able to enter the critical section or region.&lt;br /&gt;
In election problems, the coordinator has no need to let other&lt;br /&gt;
nodes become coordinator. It does not matter if every node&lt;br /&gt;
has an equal chance of becoming a leader, as long as there&lt;br /&gt;
is a leader that has not crashed or failed.&lt;br /&gt;
Mutual exclusion algorithms usually do not consider the possibility&lt;br /&gt;
that a process in the critical section is subject to &amp;#039;&amp;#039;&amp;#039;failure&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
whereas in election protocols coordinator failure is an important&lt;br /&gt;
problem.&lt;br /&gt;
An new coordinator must also send &amp;#039;&amp;#039;&amp;#039;information&amp;#039;&amp;#039;&amp;#039; messages about&lt;br /&gt;
the results of the election to all nodes, but in mutual exclusion,&lt;br /&gt;
the nodes don&amp;#039;t care which node is currently in the critical section.&lt;br /&gt;
&lt;br /&gt;
== Election and Wave Algorithms ==&lt;br /&gt;
&lt;br /&gt;
[[Wave Algorithm|Wave algorithms]] and [[Heart Beat Algorithm|heart beat algorithms]]&lt;br /&gt;
can be used with a slight extension to perform an election as well, because&lt;br /&gt;
they can be used in general to spread and collect information.&lt;br /&gt;
If all nodes have a unique identification numner or ID, simply the&lt;br /&gt;
node with the highest or lowest ID must be selected. The corresponding&lt;br /&gt;
Heart Beat or systolic algorithm is named &amp;quot;FloodMax&amp;quot;. The &amp;quot;FloodMax&amp;quot; algorithm&lt;br /&gt;
works like this: every process maintains a record of the maximal ID&lt;br /&gt;
seen so far, and in each round, this maximal ID is propagated to all &lt;br /&gt;
neighbors. If the number of rounds matches the diameter of the&lt;br /&gt;
network, a node is elected as the new leader if the &lt;br /&gt;
maximal ID agrees with the node&amp;#039;s own ID.&lt;br /&gt;
&lt;br /&gt;
A wave algorithm can be used an election algorithm by adding&lt;br /&gt;
an additional information phase or additional initiators.&lt;br /&gt;
The normal echo-algorithm for example&lt;br /&gt;
has two phases, an expansion or exploration phase and a&lt;br /&gt;
contraction or echo phase. The first phase can be used to&lt;br /&gt;
spread information in the system, the second to collect information&lt;br /&gt;
from the system. The wave algorithm can be used for an election if it &lt;br /&gt;
is used to collect information about the node with the highest &lt;br /&gt;
identification number or ID, and if an additional information phase &lt;br /&gt;
is added where the system is informed about the winner (i.e. &lt;br /&gt;
the new leader or coordinator). Unfortunately, the echo-algorithm does not &lt;br /&gt;
work if only node fails or crashes, because it will hang in the second phase.&lt;br /&gt;
&lt;br /&gt;
If we add additional initiators, we can use the principle&lt;br /&gt;
of &amp;#039;&amp;#039;&amp;#039;wave extinction&amp;#039;&amp;#039;&amp;#039;. Each nodes initiates a wave, and&lt;br /&gt;
only the wave with the highest ID survives and extinguishes&lt;br /&gt;
all other waves. The principles of wave-extinction applied&lt;br /&gt;
to a ring topology is known as Chang-Roberts algorithms.&lt;br /&gt;
Gerard Tel explains in his book &amp;quot;Distributed Algorithms&amp;quot; how election and &lt;br /&gt;
[[Wave Algorithm|wave algorithms]] are connected with each other (chapter 7.3, page 246): &lt;br /&gt;
&amp;quot;An algorithm for leader election can be obtained from an arbitrary centralized wave algorithm &lt;br /&gt;
by the application of a construction called extinction. In the resulting election&lt;br /&gt;
algorithm each initiator starts a separate wave; the messages of the wave&lt;br /&gt;
initiated by process p must all be tagged with p in order to distinguish&lt;br /&gt;
them from the messages of different waves. The algorithm ensures that, no&lt;br /&gt;
matter how many waves are started, only one wave will run to a decision,&lt;br /&gt;
namely, the wave of the greatest or smallest initiator. All other waves will&lt;br /&gt;
be aborted before a decision can take place.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
(*) Hector Garcia-Molina, &amp;#039;&amp;#039;Elections in a Distributed Computing System&amp;#039;&amp;#039;, IEEE Transactions on Computers, Vol. C-31, No. 1, January (1982) 48-59&lt;br /&gt;
&lt;br /&gt;
Ephraim Korach, Shlomo Moran, and Shmuel Zaks, &amp;#039;&amp;#039;Tight lower and upper bounds for a class of distributed algorithms for a complete network of processors&amp;#039;&amp;#039;, In Proc. of 3rd ACM PODC Symposium on Principles of Distributed Computing, Vancouver (1984) 199-207&lt;br /&gt;
&lt;br /&gt;
[http://citeseer.ist.psu.edu/193488.html Time and Message Bounds of Election in Synchronous and Asynchronous Complete Networks],&lt;br /&gt;
Yehuda Afek, Eli Gafni, In Proc. of 4th ACM PODC Symposium on the Principles of Distributed Computing,&lt;br /&gt;
Minaki, Canada (1985) 186-195&lt;br /&gt;
 &lt;br /&gt;
[http://citeseer.ist.psu.edu/singh92leader.html Leader Election in Complete Networks], &lt;br /&gt;
Gurdip Singh, In Proc. of 11th ACM PODC Symposium on the Principles of Distributed Computing,&lt;br /&gt;
Vancouver, Canada (1992) 179-190&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&lt;br /&gt;
Nancy A. Lynch, &amp;#039;&amp;#039;Distributed Algorithms&amp;#039;&amp;#039;, Morgan Kaufmann 1996, ISBN 1558603484&lt;br /&gt;
&lt;br /&gt;
Gerard Tel, &amp;#039;&amp;#039;Introduction to Distributed Algorithms&amp;#039;&amp;#039;, Cambridge University Press, 2nd edition, 2001, ISBN 0521794838&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributed Algorithms]]&lt;/div&gt;</summary>
		<author><name>Jfromm</name></author>
	</entry>
</feed>