<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>MDCFUG Blog - Test</title>
			<link>http://mdcfug.org/blog/index.cfm</link>
			<description>Maryland ColdFusion User Group blog - http://www.mdcfug.com</description>
			<language>en-us</language>
			<pubDate>Thu, 09 Sep 2010 12:18:04 -0400</pubDate>
			<lastBuildDate>Mon, 09 Jun 2008 11:40:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>michael@teratech.com</managingEditor>
			<webMaster>michael@teratech.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>michael@teratech.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>MDCFUG Blog</title>
				<link>http://mdcfug.org/blog/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			<item>
				<title>Mike Brunt&apos;s Pre-CFUnited Blog</title>
				<link>http://mdcfug.org/blog/index.cfm/2008/6/9/Mike-Brunts-PreCFUnited-Blog</link>
				<description>
				
				&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;I will be presenting at CFUnited on Friday June 20, 2008, on the subject of High Availability (HA)-Clustering for ColdFusion/JRun applications and I intend to make this as practical as possible.&lt;span style=&quot;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Having spent many years travelling the world helping to fix slow or unresponsive ColdFusion applications, I see HA as a natural progression to this and in fact Load-Balancing, which is a part of Clustering, has a direct impact on improving performance.&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;There is a point, often overlooked by even the manufacturers of clustering/load balancing equipment.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;Clustering is the overall term which, in my opinion, applies whenever two items or more appear as one, to the users.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;In our world, that typically means multiple web servers, with multiple application and database servers.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;With this aspect of Clustering there are two services which are a part of the Clustering; &lt;strong style=&quot;&quot;&gt;Fail-Over&lt;/strong&gt; and &lt;strong style=&quot;&quot;&gt;Load-Balancing&lt;/strong&gt;.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;In my experience &lt;strong style=&quot;&quot;&gt;Fail-Over&lt;/strong&gt; is always present, meaning if one member of the Cluster fails the remaining members ensure that continuity of service is maintained.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;This is a prime function of a Cluster.&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;strong style=&quot;&quot;&gt;Load-Balancing&lt;/strong&gt; is the apportioning of load around members of the Cluster, typically an even distribution of the load is what is required.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;The most even distribution is via Round-Robin which means each single request moves around the Cluster members, like this (this example shows a 3 member Cluster):&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST1 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST1 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST2 &amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST2 &amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST3&amp;gt; CLUSTERMEMBER3&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST3&amp;gt; CLUSTERMEMBER3&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST4 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST4 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;This is the most evenly balanced Load Balancing algorithm and as I mentioned above is the Round-Robin algorithm.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;Problems can occur with that algorithm if there are user specific items in memory on one of the Cluster members, for instance in memory session state variables.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;If USER1 has logged in to CLUSTERMEMBER1 above and their details are in session variables on CLUSTERMEMBER1 when users next request takes them to CLUSTERMEMBER2 those in memory session state variables will not be there.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;My preference for the optimal Load-Balancing algorithm is Round-Robin with Sticky Sessions.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;In the case a user &amp;ldquo;sticks&amp;rdquo; to a Cluster member as follows:&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST1 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST1 &amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST2 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST2 &amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST3&amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST3&amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 1 &amp;gt; REQUEST4 &amp;gt; CLUSTERMEMBER1&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt; text-indent: -0.25in;&quot; class=&quot;ListParagraph&quot;&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;&amp;middot;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;USER 2 &amp;gt; REQUEST4 &amp;gt; CLUSTERMEMBER2&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;This is not quite as evenly balanced as Round-Robin alone but unless there is a failure of one Cluster member the user will not lose their session state variables and the load balances across all Cluster members eventually.&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;This article serves as the first in a series of posts leading up to the CFUnited presentation and my next one will delve into differences between Hardware and Software Clustering.&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0.0001pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;!--[if !supportEmptyParas]--&gt;&amp;nbsp;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; 
				</description>
				
				<category>Test</category>				
				
				<pubDate>Mon, 09 Jun 2008 11:40:00 -0400</pubDate>
				<guid>http://mdcfug.org/blog/index.cfm/2008/6/9/Mike-Brunts-PreCFUnited-Blog</guid>
				
			</item>
			</channel></rss>