<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DreamHost Blog &#187; Foobars</title>
	<atom:link href="http://blog.dreamhost.com/category/foobars/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dreamhost.com</link>
	<description>Tales From the Inside!</description>
	<lastBuildDate>Wed, 18 Nov 2009 20:00:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Speaking of scheming&#8230;</title>
		<link>http://blog.dreamhost.com/2008/12/10/speaking-of-scheming/</link>
		<comments>http://blog.dreamhost.com/2008/12/10/speaking-of-scheming/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 23:11:08 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Tech News]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/?p=1019</guid>
		<description><![CDATA[Sucks Sites.
I&#8217;m sure you&#8217;ve seen them.  Wikipedia calls them gripe sites.  They&#8217;re usually set up by disgruntled customers and then typically disappear a few weeks later once the creator has had time to cool down.

Oh yeah, they&#8217;re out there.  NoDaddy.com, for example&#8230;but in their case it turns out they may actually be [...]]]></description>
			<content:encoded><![CDATA[<p><em>Sucks Sites</em>.</p>
<p>I&#8217;m sure you&#8217;ve seen them.  Wikipedia calls them <a href="http://en.wikipedia.org/wiki/Gripe_site">gripe sites</a>.  They&#8217;re usually set up by disgruntled customers and then typically disappear a few weeks later once the creator has had time to cool down.</p>
<p><img src="http://blog.dreamhost.com/wp-content/uploads/2008/12/gripesitelifecycle.gif" alt="Sucks to be whoever&#039;s on the receiving end of this thing!" title="Gripe Site Life Cycle" width="374" height="515" class="size-full wp-image-1020" /></p>
<p>Oh yeah, they&#8217;re out there.  <a href="http://nodaddy.com/">NoDaddy.com</a>, for example&#8230;but in their case it turns out they may actually be on to something!</p>
<p>Thanks to some great investigative journalism by Andrew Allemann over at <strong><a href="http://www.domainnamewire.com/">Domain Name Wire</a></strong>, you can now read in great detail the lengths that GoDaddy has gone to to conceal its involvement in its own domain name warehousing operation.</p>
<p><strong><a href="http://domainnamewire.com/2008/12/03/standard-tactics-llc-how-godaddy-profits-from-expired-domains/">Standard Tactics, LLC: How GoDaddy Profits from Expired Domains</a></strong></p>
<p>The Go Daddy Group <em>allegedly</em> uses a complicated web of subsidiaries and anonymized whois records to hide its involvement in its domain warehousing/auctioning scheme.</p>
<p>Check it out.  It&#8217;s a great read to get you into the Christmas spirit.  If you&#8217;re the Grinch.</p>
<p>I guess when you&#8217;ve got a <a href="http://www.godaddy.com/gdshop/news/release_view.asp?news_item_id=198&#038;isc=bpsfrblog2&#038;app_hdr=0">$2 million Christmas party</a> to throw and a <a href="http://community.tvguide.com/blog-entry/TVGuide-News-Blog/Tv-Guide-Sports/Nbc-Seeks-Giant/800039088">$3 million Super Bowl commercial</a> to put on, that money&#8217;s gotta come from somewhere!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/12/10/speaking-of-scheming/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>DreamQuake!</title>
		<link>http://blog.dreamhost.com/2008/07/29/dreamquake/</link>
		<comments>http://blog.dreamhost.com/2008/07/29/dreamquake/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 18:46:08 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Funnyish]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[earthquake]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/?p=832</guid>
		<description><![CDATA[
We just felt a BIG earthquake! Okay, just a 5.8, but it sure made our 50th story office BOUNCE!
Don&#8217;t worry, all data centers are okay!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://quake.usgs.gov/recenteqs/Quakes/ci14383980.html"><img border=0 src="http://blog.dreamhost.com/wp-content/uploads/2008/07/118-34.gif" alt="Red Square of SHAKE!" title="Red Square of SHAKE!" width="500" height="489" class="alignnone size-full wp-image-831" /></a></p>
<p>We just felt a BIG earthquake! Okay, just a <a href="http://quake.usgs.gov/recenteqs/Quakes/ci14383980.html">5.8</a>, but it sure made our <a href="http://blog.dreamhost.com/2007/12/21/were-so-high-right-now-you-dont-even-know/">50th story office</a> <strong>BOUNCE!</strong></p>
<p>Don&#8217;t worry, <em>all data centers are okay!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/07/29/dreamquake/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Another Anatomy</title>
		<link>http://blog.dreamhost.com/2008/04/07/another-anatomy/</link>
		<comments>http://blog.dreamhost.com/2008/04/07/another-anatomy/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 20:23:35 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[New Features]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2008/04/07/another-anatomy/</guid>
		<description><![CDATA[
Okay, nothing silly this time, I promise&#8230;
Some of you may have noticed that we&#8217;ve been having what a problem that is, although maybe not the worst in DreamHost history, definitely in the top 5.
There has been a DreamHost Status post about it, but it&#8217;s been going on so long, there obviously needs to be more [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/04/homersbrain.jpg' alt='X-Rays are used to explain a lot of things at DreamHost.' title="X-Rays are used to explain a lot of things at DreamHost."/></p>
<p>Okay, nothing <a href="http://blog.dreamhost.com/2008/01/15/um-whoops/">silly</a> this time, I promise&#8230;</p>
<p>Some of you <i>may</i> have noticed that we&#8217;ve been having what a problem that is, although maybe not the <i>worst</i> in DreamHost history, <b>definitely in the top 5.</b></p>
<p>There has been <a href="http://www.dreamhoststatus.com/2008/03/27/filer-problems-with-blingy-cluster/">a DreamHost Status post</a> about it, but it&#8217;s been going on so long, there obviously needs to be more said.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/04/pompeii-smoking-cone02.jpg' alt="This wasn't the first disaster." title="This wasn't the first disaster." /></p>
<p><b>The History</b></p>
<p>The events that conspired to cause this horrible performance for everybody in our &#8220;blingy&#8221; cluster actually started to take root <i>19 months</i> ago.</p>
<p>That was when I made <a href="http://blog.dreamhost.com/2006/08/25/ask-dreamhost-customers/">this post</a> asking our customers for some suggestions on storage. I made the mistake in that post of mentioning the name of <i>one particular</i> storage vendor who apparently does a search for their name in rss feeds of all kinds of blogs. I won&#8217;t mention their name again here, to test if they <b>REALLY</b> read this blog, but they were the one on the list right after &#8220;Netapp&#8221;.</p>
<p>Anyway, immediately a sales guy from there was hounding me about how great their product was. It would have super-duper reliability, super-duper performance, and super-duper ease-of-management. It was super-duper expensive compared to our current solution (about 3x the price per GB), so in the end I declined.</p>
<p>But, over the next year he kept hounding me and hounding me, and eventually the price came down to something in line with our current costs, so we decided to try <b>one</b> unit for our new cluster, &#8220;Blingy&#8221;. After we were satisfied with our internal testing, Blingy went live with the new storage solution in December 2007.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/04/titanic_ship.jpg' alt='No need for life boats!' title="No need for life boats!" /></p>
<p><b>Smooth Sailing</b></p>
<p>At first, everything was fine, performance was great, everybody was hunky and dory. But then, as usage started to go up, <a href="http://www.dreamhoststatus.com/2007/12/27/blingy-issues/">the new file system started acting up.</a> Around the same time every night, the system would stop responding to NFS requests for a while, which would immediately break web and mail service for <i>everybody in the entire cluster..</i> thousands of customers.</p>
<p><b>Our Bad</b></p>
<p>Now, it can be a <b>big</b> mistake to put live customers on <i>any</i> new system. But honestly, we&#8217;d tested it lots, researched it a ton, and we added people very slowly at first, and it performed <i>great.</i></p>
<p>Our <B>biggest</b> mistake I believe had nothing to do with what specific vendor or hardware we went with.. it was simply <i>putting so many eggs in <b>one basket!</b></i></p>
<p>Even with our Netapps (which are pretty much <i>awesome</i>), there are problems from time-to-time. However, a typical hosting cluster will have <b>a dozen</b> or so Netapps, which means any problems are <b>one twelfth</b> as big.</p>
<p>With Blingy, EVERY customer is on this one &#8220;mega&#8221; filer, which <i>in theory</i> should make for better performance, reliability, and ease of management. And since we got the clustered solution (in an active-active configuration)&#8230; there really is no single point of <b>hardware</b> failure in this thing.</p>
<p>But, as it turns out, there are <b>a lot</b> of <i>non-hardware</i> failures in the world.</p>
<p><b>Their Bad</b></p>
<p>Well, the techs at the vendor couldn&#8217;t figure out what was causing the NFS freezing, and so they recommended us doing a <a href="http://www.dreamhoststatus.com/2008/03/10/blingy-file-server-upgrade/">major OS upgrade</a> to hopefully fix it.</p>
<p>During this whole time, the fiber channel disks were slowly filling up, and we&#8217;d been trying to move large files off to the sata pool (it&#8217;s a two-tiered solution, and there&#8217;s a feature that automatically moves less-accessed data to lower tiers).. however the thing couldn&#8217;t move the data fast enough. It couldn&#8217;t finish doing a &#8220;move job&#8221; in a single day, and every day it&#8217;d sort of &#8220;crash&#8221;, which would screw up the move job, and nothing would get moved.</p>
<p>Also, as the disk kept getting more full, performance kept getting worse, creating a <i>vicious cycle.</i> We ordered some more fiber channel disk shelves at the end of February to grow the main FC volume, since we couldn&#8217;t get things off to SATA, and it was supposed to come on <b>March 10th</b> and be installed at the same time as the major OS upgrade.</p>
<p>However, the disks didn&#8217;t end up getting installed until <b>March 25th,</b> and at that point it turned out we could NOT grow the FC volume with these disks (well, it was technically <i>possible</i>, but their on-site techs recommended VERY <b>VERY</b> heavily against it.. it would severly impact performance), which was sort of the whole point. So now we had a <i>new</i> FC volume which we <i>still</i> had to migrate users to.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/04/exxon_valdez.jpg' alt="The Exxon Valdez ain't got NOTHING on us!" title="The Exxon Valdez ain't got NOTHIGN on us" /></p>
<p><b>Your Bad</b></p>
<p>Of course, this whole time, new customers just kept signing up, and being added to Blingy. <b>What <i>were</i> you guys thinking?</b></p>
<p>By this point we knew this was a <i>bad</i> idea, but we didn&#8217;t have a new cluster ready (we&#8217;d expected Blingy to grow for another couple of months), and we try to never ever grow old clusters again once they&#8217;ve been &#8220;shut off&#8221; from new signups (because in time they stablize and have very few problems).</p>
<p>However, the moving people off to the new FC vol, or the original SATA vol, or even the new Netapp we also added to Blingy, just wasn&#8217;t happening fast enough. So on <b>April 2nd</b> we bit the bullet and switched Blingy off as the &#8220;new customer&#8221; cluster and started growing good old &#8220;Postal&#8221; again. Once we did that, we were <i>finally</i> able to get ahead of the curve and total usage on our first fiber channel volume has been slowly dropping ever since.</p>
<p>We tried at that point to contact the vendor to see if we could just get more drives that WOULD allow us to grow fcvol1, but they said their manufacturers were closed for inventory for a week after the end of the quarter and we couldn&#8217;t get anything until Friday, <b>April 11th</b> at the absolute <b>soonest.</b> Later they said they could find us some they could get us by Tuesday, <b>April 7th,</b> and we preliminarily said we&#8217;d take them.</p>
<p>This whole time we had a support ticket open with the vendor about the crashes (the OS upgrade didn&#8217;t fix it), and finally on <b>April 3rd</b> we received notice that they&#8217;d fixed the bug that they believed was causing it! However, the patch still needed to go through their &#8220;QA&#8221;. Finally, this Sunday <b>April 6th</b> they said it was all ready to be deployed, so last night <a href="http://www.dreamhoststatus.com/2008/04/06/30-min-blingy-downtime-tonight/">we did.</a></p>
<p><b>What Now</b></p>
<p>Well, <i>right</i> now, performance is still not <b>great</b> on fcvol1&#8230; but mail and web should be pretty much <i>working.</i> One thing we&#8217;ve noticed is a website that hasn&#8217;t been visited in a long time will have a big lag still upon the first visit.. but then subsequent reloads/visits seem much faster.</p>
<p>At least the total disk usage is coming down now, and <i>hopefully</i> by tomorrow it&#8217;ll be below 85% which is supposedly a magic number where performance is fine. We&#8217;re going to keep off-loading it until things <i>are</i> great, though. We&#8217;ve got plenty of disk space for it, the problem is just it takes <b>so long</b> to move it.</p>
<p>We also I guess will find out tonight if the NFS freezing bug <i>is</i> fixed by this new patch. Hopefully so.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/04/timbaland.jpg' alt='Apologize this kung-fu kick!' title="Apologize this kung-fu kick!" /></p>
<p><b>It&#8217;s Too Late&#8230;</b></p>
<p>I realize this is probably too little too late for many of you, but I just wanted to sincerely apologize for this whole big Blingy cluster-f*ck. Also, if you&#8217;re on Blingy (you can tell from <a href="https://panel.dreamhost.com/">the panel</a> by clicking &#8220;account status&#8221; and looking at &#8220;Your Email Server&#8221;, we&#8217;d like to offer you a month worth of hosting credit.</p>
<p>To get it, all you need to do is contact support from our panel and make the subject of your message &#8220;Blingy Account Credit&#8221;. That&#8217;s all you have to do, and we&#8217;ll credit everybody who asks (and is actually <i>on</i> Blingy!) next Monday (April 14th).</p>
<p><a href="http://www.wholewheat.com/bm/T-Shirts/blingy-spring-break-2008.shtml"><img border=0 src='http://blog.dreamhost.com/wp-content/uploads/2008/04/blingy.jpg' alt='Very funny, Mr. Happy Blingy Customer.' title="Very funny, Mr. Happy Blingy Customer."/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/04/07/another-anatomy/feed/</wfw:commentRss>
		<slash:comments>125</slash:comments>
		</item>
		<item>
		<title>Good Reminiscing Friday</title>
		<link>http://blog.dreamhost.com/2008/03/21/good-reminiscing-friday/</link>
		<comments>http://blog.dreamhost.com/2008/03/21/good-reminiscing-friday/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 02:09:44 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2008/03/21/good-reminiscing-friday/</guid>
		<description><![CDATA[
Well, it was a little over two months ago that we had what I think is pretty safe to call the worst disaster in DreamHost history.
In retrospect to me, it&#8217;s kind of funny that the worst disaster didn&#8217;t turn out to be due to a security breach, a power outage, a loss of data, or [...]]]></description>
			<content:encoded><![CDATA[<p><img src=http://blog.dreamhost.com/wp-content/uploads/2008/01/fat_homer_lrg.gif alt="Those were the days!" title="Those were the days!"></p>
<p>Well, it was a little over <i>two months ago</i> that we had what I think is pretty safe to call <b><a href="http://blog.dreamhost.com/2008/01/15/um-whoops/">the worst disaster in DreamHost history.</a></b></p>
<p>In retrospect to me, it&#8217;s <i>kind</i> of funny that the <b>worst disaster</b> didn&#8217;t turn out to be due to <i>a security breach, a power outage, a loss of data,</i> or actually <i>anything</i> related to our actual <b>hosting service.</b> I guess it shouldn&#8217;t be a surprise that people care a lot more about their <b>bank accounts</b> than they do their <i>websites.</i></p>
<p>I <i>have</i> realized that <b>billing</b> is the one issue where how important <i>we</i> feel it is is <b>completely at odds</b> with how important <i>you guys</i> feel it is.</p>
<p>What I&#8217;m trying to say is, we&#8217;ve always been <i>ultra-flexible and lax</i> about <b>how</b> people pay, <b>when</b> people pay, or even about giving <b>credits, discounts, or refunds.</b> We figure, whatever, pay us when you&#8217;re ready, we&#8217;re not <b>sending anybody to collections</b> or <b>ruining anybody&#8217;s credit</b> over some measly <i>bandwidth bill.</i></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/03/amex.jpg' alt='If everybody had just been paying by check!' title="If everybody had just been paying by check!" /></p>
<p>What <i>we&#8217;ve</i> always tried to focus on more (even though it <i>might not seem like it at times!)</i> is our <b>hosting system&#8217;s stability, performance, and features.</b></p>
<p>I guess I&#8217;ve always figured that any billing-related error can be <i>easily undone</i> (worst case scenario, it costs us a little money); there is no <b>lasting</b> harm done to the customer.  Whereas having a website or email problem could <i>potentially</i> cause <b>permanent</b> damage to somebody&#8217;s business or personal life or something?</p>
<p>Well then, let&#8217;s go back and see just how <i>little money</i> a <b>worst case scenario</b> actually costs, shall we?</p>
<p><b>Credits and refunds to cover people&#8217;s bank fees: <i>$52,000.</i></b></p>
<p><i>Sigh,</i> if only everybody kept a <b>big cushion of cash</b> in their account! The <b>main</b> damage that can be caused by a billing snafu is for people who get their <b>account overdrawn,</b> and because of <i>that</i> aren&#8217;t able to make a critical purchase, or have a check bounce, causing hassles and incurring bank fees. We offered to pay people any amount their bank charged them for going negative, and in the end that total looks like it came to about <b>$52,000.</b></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/03/discover1.jpg' alt='Discover how much money I lost DreamHost!' title="Discover how much money I lost DreamHost!"/></p>
<p><b>Accidental refunds: <i>$170,000.</i></b></p>
<p>The worst part of this whole process <i>(for us)</i> turned out to be just <i>after</i> the accidental billing, ironically when we were trying to make things <b>right!</b></p>
<p><a href="http://blog.dreamhost.com/2008/01/17/the-final-update/">If you recall,</a> our system was not <b>actually</b> charging about <b>75%</b> of the time we thought it did.. and so we <i>refunded</i> <b>thousands</b> of people who were <i>never</i> charged (but, <b>75%</b> of the refunds didn&#8217;t work either). Well, out of all that, and after two months, there are still about <b>600 accounts</b> who were credited a total of <b>$170,000</b> in excess of what we charged them that we <i>haven&#8217;t been able to get back from them or their bank.</i></p>
<p>It <b>is</b> slightly annoying when the <b>same guy</b> who complains to the high heavens when he <i>thought</i> he&#8217;d been <b>over-charged $9,000</b> by accident conveniently <b>disappears</b> when we realize that <i>actually,</i> he&#8217;s been <b>over-<i>refunded</i> $9,000</b> by accident.</p>
<p><b>Extra credit card fees: <i>$82,000.</i></b></p>
<p>Another <i>slightly</i> annoying thing is that credit card processors <b>don&#8217;t credit you back any fees</b> when you <i>refund</i> a transaction. Overall, the <i>extra</i> credit card processing we did resulted in <i>extra</i> fees of about <b>$350,000!</b> Fortunately, after a whole lot of <b>groveling and explaining</b> the situation (and waiting two months), we <i>finally</i> got all but <b>$82,000</b> of that back from First Data, American Express,  and Discover Card.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/03/visa.jpg' alt="Apparently our snafu didn't screw up Visa's IPO too badly." title="Apparently our snafu didn't screw up Visa's IPO too badly." /></p>
<p><b>Extra support messages: <i>20,000.</i></b></p>
<p>As you <i>may</i> have surmised, <b>people wrote to us about this thing.</b> About <b>20,000 times&#8230;</b> and it would have been <b>tens of thousands more</b> if we hadn&#8217;t put up an <i>&#8220;emergency block&#8221;</i> against new messages for a little while in there.</p>
<p>How much this extra support <i>actually</i> cost (in terms of your wased time, tech support overtime pay, and other questions taking longer to answer to) is hard to say, but normally we only get about <b>45,000</b> messages in a whole month!</p>
<p><b>Accounts canceled: <i>1000.</i></b></p>
<p>It&#8217;s also <i>kind</i> of hard to say how many people actually closed their account <i>because</i> of the incident, but in January we did have about <b>1,000</b> more accounts closed than average. Assuming each of those accounts would have stayed for maybe another year, that&#8217;s another <b>$120,000</b> down the Intertubes. It&#8217;s crazy&#8230; from all our power problems back in 2006, we hardly lost <i>any</i> accounts at all.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/03/mastercard.jpg' alt='mastercard.jpg' alt="Taking the heat for a $10,000,000 typo.." title="Taking the heat for a $10,000,000 typo.."/></p>
<p><b>Goodwill lost: <i>Priceless.</i></b></p>
<p>Yeah, it turns out this <i>whole</i> blog post is <B>nothing more</B> than another clich&eacute;d MasterCard commercial parody.</p>
<p><i>P.S. I guess it&#8217;s nice to know, less than <b>two hours</b> away from our <a href="http://www.dreamhoststatus.com/2008/03/14/central-services-and-spunky-cluster-move/">biggest <b>data center move ever,</b></a> that we&#8217;ll cause a tiny fraction of the disruption to our customers that one unexpected <b>fat finger</b> did!</p>
<p>P.P.S. Thanks RIM, for scheduling a <a href="http://www.crunchgear.com/2008/03/21/rim-schedules-outage-for-march-22/">blackberry outage</a> <b>exactly</b> at the same time. It makes us look better. And, maybe some of our Happy Customers will blame their lack of email tonight on <b>you!</b></i></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/03/21/good-reminiscing-friday/feed/</wfw:commentRss>
		<slash:comments>80</slash:comments>
		</item>
		<item>
		<title>The Final Update</title>
		<link>http://blog.dreamhost.com/2008/01/17/the-final-update/</link>
		<comments>http://blog.dreamhost.com/2008/01/17/the-final-update/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 20:52:28 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2008/01/17/the-final-update/</guid>
		<description><![CDATA[Okay, all the people who had still not gotten their refunds was starting to seem a little weird, so after further investigation yesterday, I think we&#8217;ve finally got things completely fixed.
It turns out, there was a glitch in our new PayflowPro.pm that resulted in only the first transaction in a single second actually going through! [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, all the people who had still not gotten their refunds was starting to seem a little weird, so after further investigation yesterday, I think we&#8217;ve finally got things completely fixed.</p>
<p>It turns out, there was a glitch in our new PayflowPro.pm that resulted in only the <b>first</b> transaction in a single second actually going through! According to Paypal&#8217;s site, that PayflowPro.pm should be just a drop-in replacement for the old PFProAPI.pm&#8230; and it did seem to be, after changing two lines everything seemed okay.</p>
<p>However, there was <i>one</i> little difference. The new HTTPS interface requires you to pass a unique id for each transaction, and PayflowPro.pm generated that unique id as follows:</p>
<blockquote><p>
  my $request_id=substr(time . $data->{TRXTYPE} . $data->{INVNUM},0,32);
</p></blockquote>
<p>The problem was, we never passed in the (optional) &#8220;INVNUM&#8221; field.. we had an invoice number, but we passed it in as the (also optional) &#8220;COMMENT1&#8243;. So, our &#8220;unique&#8221; request_id was pretty much just the current time (plus whether it was a sale or a credit)!</p>
<p>In my testing this didn&#8217;t fail, because I didn&#8217;t run multiple transactions in the same second. Also, they apparently still return the same old success code we test for when this happens! But when multiple biller services run in parallel on all our controllers, lots of transactions end up happening on the same second.</p>
<p><b>The Upside</b></p>
<p>It turns out of the actually closer to $9,600,000 we thought we mistakenly charged, only actually about 1/4 of them ever _actually_ hit people&#8217;s credit cards. <b>Our</b> system thought we charged them, and they received an email receipt, but that was where it ended. It turns out we actually billed &#8220;only&#8221; about $2,100,000 incorrectly.</p>
<p><b>The Downside</b></p>
<p>This bug still existed until late last night (around 4am).. so when we ran our super-refunder script, the same thing was happening. Only about 1/4 of the refunds successfully went through. This resulted in the following situation:</p>
<blockquote><p>
 About 9/16th of our customers: weren&#8217;t actually billed <b>OR</b> actually refunded.<br />
 About 1/16th of our customers: were billed <b>AND</b> were refunded.<br />
 About 3/16th of our customers: were billed <b>BUT WEREN&#8217;T</b> refunded.<br />
 About 3/16th of our customers: weren&#8217;t billed <b>BUT WERE</b> refunded. (of course, nobody wrote in about it!)
</p></blockquote>
<p>Anyway, last night we fixed the bug (by passing our invoice in as INVNUM) and re-ran another fixer that took an actual log of successful transactions downloaded from our processor and cross-referenced everything with our system. This is what it did:</p>
<blockquote><p>
 About 9/16th of our customers: marked their bill and refund as $0 amount.<br />
 About 1/16th of our customers: left everything alone.<br />
 About 3/16th of our customers: redid the refund.<br />
 About 3/16th of our customers: redid the charge.
</p></blockquote>
<p>Double checking now, there were no more of those glitches from before, so everything seems okay.</p>
<p>Once again, all the stuff mentioned in the last post still holds true (you may not see the correction on your statement yet, but if you call your processor they should see it coming, for REALs this time), and once again, I&#8217;m very sorry about this whole fiasco.</p>
<p>Sincerely,<br />
Josh Jones</p>
<p>P.S. For people wondering how the &#8220;robust and stable&#8221; rebiller could have created multiple future charges for the same date&#8230; I guess I meant &#8220;robust and stable&#8221; in regards to normal use over the last ten years. It looks like in this case, when multiple instances were running in parallel on a future date, race conditions allowed some multiple charges for the same period to be created. That too should never happen again now that we don&#8217;t allow future bill dates.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/01/17/the-final-update/feed/</wfw:commentRss>
		<slash:comments>427</slash:comments>
		</item>
		<item>
		<title>The Aftermath</title>
		<link>http://blog.dreamhost.com/2008/01/16/the-aftermath/</link>
		<comments>http://blog.dreamhost.com/2008/01/16/the-aftermath/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 00:35:22 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2008/01/16/the-aftermath/</guid>
		<description><![CDATA[It seems like it&#8217;s about time for a follow-up on things from yesterday.
First, I just want to apologize for the regular-style blog post about it yesterday. Hopefully this will be the (picture, bold, and italics-free) blog post many of you would have liked to have seen yesterday.
The current status: we believe to have refunded everybody [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like it&#8217;s about time for a follow-up on things from yesterday.</p>
<p>First, I just want to apologize for the regular-style blog post about it yesterday. Hopefully this will be the (picture, bold, and italics-free) blog post many of you would have liked to have seen yesterday.</p>
<p>The current status: we believe to have refunded everybody who was incorrectly billed at this point. This was pretty much finished yesterday at 3pm, but there were a few stragglers who we got today. If you were charged and haven&#8217;t seen the refund show up on your credit card / bank statement yet, try calling your bank. Lots of places take a day or two or three or even four to update their statements even if the money&#8217;s already back in, but they should see it (by tomorrow for sure) if you call them.</p>
<p>If this/these erroneous charge(s) by us resulted in you having any sort of overdraft/bounced check/nsf fee from your financial institution, please contact our support team from the web panel. We&#8217;d just like to request that you include a copy of your statement with the necessary info showing the fees. It can be either a paper statement or a print out of your online statement, or even a screenshot of your online statement and it can be scanned and attached to your support message via our support form or faxed to us at 714-990-2600. If you fax it, please be sure to write your domain name or DreamHost account number on the fax. When we get this, we will put money on your credit card equal to the amount your bank charged you, as well as give you a DreamHost account credit for the same amount on top of that.</p>
<p>Another thing&#8230; if you&#8217;ve decided because of this fiasco you&#8217;d like to cancel hosting with us, we will allow you to get a full credit card refund of any unused portion of your pre-paid contract, even if you&#8217;re past our standard 97 day money-back guarantee. To do so, just close your account as normal from our web panel (&#8221;Billing > Manage Account&#8221; area). Then, after it&#8217;s done, write into support and let them know you&#8217;d like to get your remaining account credit refunded to your credit card due to the billing snafu of January 15th and we&#8217;ll be happy to comply.</p>
<p><strong>Checks to Protect Your Balances</strong></p>
<p>Finally, here are the precautions we&#8217;ve now added to our billing system to make sure nothing like this happen ever again:</p>
<p>1. Our biller service will no longer accept a date in the future.<br />
2. This whole time, we did have an option to specify &#8220;never automatically bill me more than $X in a day&#8221; on our  web panel. Of course, not too many people had this set, and why would they have to? Nevertheless, we&#8217;ve made a change now that even if you don&#8217;t have a specific daily limit set our system will not allow billing you in one day more than 50% more than the most you&#8217;ve ever authorized in the past.<br />
3. Our rebiller does an automatic filling-in of old charges when it finds some missing. This should never actually happen anyway, but we&#8217;ve added a new check that if it ever finds itself filling in more than 3 missing charges on any account it stops immediately and notifies our financial team.<br />
4. We&#8217;ve also added an overall check where if the total number of payments in a day are more than double the average number of payments we&#8217;ve gotten on that calendar day for the last seven months it fails and notifies our financial team.</p>
<p>And that&#8217;s it.. I hope this puts things more or less behind us. And remember, if you have any specific issues, our support team is always there!</p>
<p>And of course, my sincere apologies for all of this.</p>
<p>Thanks,<br />
Josh Jones</p>
<p>P.S. I apologize for that joke about the triple billing in the newsletter thing too, but you have to admit, it was <i>kind</i> of ironic that I actually did screw up billing less than a week later.</p>
<p>P.P.S.  Some of you have attempted to email us directly with information about unresolved issues stemming from this billing fiasco and have received autoresponders telling you you can&#8217;t email us directly.  That restriction was unintentional has now been removed so please re-send us your email if you have not already contacted us through other means.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/01/16/the-aftermath/feed/</wfw:commentRss>
		<slash:comments>343</slash:comments>
		</item>
		<item>
		<title>Um, Whoops.</title>
		<link>http://blog.dreamhost.com/2008/01/15/um-whoops/</link>
		<comments>http://blog.dreamhost.com/2008/01/15/um-whoops/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:52:46 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2008/01/15/um-whoops/</guid>
		<description><![CDATA[
Hello.. how&#8217;s your morning going?
I hope it&#8217;s been a little better than mine. 
We had a teensy eensy weensy little billing error last night&#8230; my first clue something was up when I saw this morning&#8217;s daily billing report (so far): $7,500,000.
It turns out due to my excessively fat fingers, nearly every one of our customers [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/01/fat_homer_lrg.gif' alt='The $7,500,000 finger.' /></p>
<p><b>Hello.. how&#8217;s your morning going?</b></p>
<p>I hope it&#8217;s been a <a href="http://www.dreamhoststatus.com/2008/01/15/billing-issues/">little better than mine.</a> </p>
<p>We had a <i>teensy eensy weensy</i> little billing error last night&#8230; my first clue <i>something</i> was up when I saw this morning&#8217;s <b>daily</b> billing report (so far): <b>$7,500,000.</b></p>
<p>It turns out due to my excessively fat fingers, <b>nearly every one</b> of our customers has been seriously over-billed in the last 12 hours.</p>
<p>I bet when you read this part of the <A href="http://wiki.dreamhost.com/index.php?title=V9.12_December_2007">last newsletter:</a></p>
<blockquote><p>
4.  New Office!</p>
<p>Another important thing I&#8217;ve been doing instead of writing newsletters<br />
is looking out the window of our NEW OFFICE:</p>
<p>     <a href="http://blog.dreamhost.com/2007/12/21/were-so-high-right-now-you-dont-even-know">http://blog.dreamhost.com/2007/12/21/were-so-high-right-now-you-dont-even-know</a></p>
<p>If your next web hosting bill from us is mysteriously tripled, now you<br />
know why.
</p></blockquote>
<p>.. you thought it was a <b>joke!</b></p>
<p>Ha, the <b>joke is on you!</b> I guess. Um, okay, no, not really, I&#8217;m sorry.</p>
<p><i>How on earth</i> could something like this happen?</p>
<p><b>Let Me Explain</b></p>
<p>A couple of weeks ago, just around new years, we started beefing up some of our internal &#8220;controller&#8221; servers. These are the machines that run all of our &#8220;behind-the-scenes&#8221; services; things from adding a user to registering a domain to configuring apaches to <b>rebilling customers.</b></p>
<p>I was on a little-bit-too-long vacation, but when I got back, I noticed our daily credit card payments seemed a tad <i>low</i> in the new year.</p>
<p>So, late last week I tried re-running the billing services for all the days back three weeks or so. I <b>knew</b> this was safe, because after <b>10 years,</b> the <i>one</i> thing you <b>DO</b> get perfect is your billing system. Our biller is pretty bug-free and robust at this point, because we&#8217;d be <i>broke and eating bugs</i> if it weren&#8217;t.</p>
<p>In fact, it&#8217;s <i>so</i> robust you can just run it on <b>any day</b> you want, and it&#8217;s safe. It <i>won&#8217;t</i> double-charge people and it&#8217;ll <i>even</i> automatically find any missing charges and catch everything up to the day you said.</p>
<p>Anyway, I ran it, and things were <i>fine..</i> and sure enough, it caught a lot of missed payments. I didn&#8217;t have time to look into it right then, but I made a note to myself to check up on it on <b>Monday</b> (yesterday) and see if things were fine or still messed up.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/01/case_of_the_mondays.jpg' alt='And a terminal case it is.' title="And a terminal case it is."/></p>
<p><b>Come Monday</b></p>
<p><b>Monday</b> came. I checked the reports and sure enough, things were still pretty low. So I looked at the logs for some of the biller services, and I noticed they were only failing on the <i>machines that had been recently upgraded!</i></p>
<p><i>That</i> explained why we were getting <b>some</b> money still (since not all the controllers have been upgraded yet), but not <b>all</b> of it.</p>
<p>Anyway, it turned out there was no 64 bit version of the PFProAPI module we use to interface to the credit card transaction server. No big deal, there&#8217;s <a href="http://www.paypaldeveloper.com/pdn/board/message?board.id=payflow&#038;thread.id=1171">a new module</a> that interfaces with their new and preferred <a href="http://www.paypaldeveloper.com/pdn/board/message?message.uid=28775">https interface,</a> and it was only a couple of lines of code to change to get us switched over!</p>
<p>So anyway, I made the change, and it worked, and <b>I even tested it,</b> and things were <i>fine!</i></p>
<p>But then&#8230; late last night, I realized: when I re-ran those biller services last week, <b>they</b> must not have fixed everybody <i>then</i> either! It&#8217;s just that by running it <b>again</b> I randomly got different people being charged on the working controllers who had been assigned an upgraded (and therefore broken) one before.</p>
<p><b>So why not just run it all one more time?</b></p>
<p>Sure, it should be <i>no problem!</i> So I did, <b>manually</b> running the biller (which is normally automatically scheduled) for <b>2008-01-14, 2008-01-13, 2008-01-12, 2008-01-11, 2008-01-10, 2008-01-09, 2008-01-08, 2008-01-07, 2008-01-06, 2008-01-05, 2008-01-04, 2008-01-03, 2008-01-02,</b> and <b>2008-01-01.</b></p>
<p>I probably should have just stopped there. But then I thought <i>better.</i> I thought to myself, <i>&#8220;When <b>did</b> we start upgrading these controllers anyway?&#8221;</i></p>
<p>I couldn&#8217;t remember. But, since the biller is <b>super-safe and robust</b> anyway, I went ahead and ran it for <b>2008-12-31, 2008-12-30, 2008-12-29, 2008-12-28, 2008-12-27, 2008-12-26,</b> and <b>2008-12-25,</b> just for the hell of it.</p>
<p><b>Notice Anything?</b></p>
<p>Don&#8217;t feel bad if you didn&#8217;t. I kind of missed it <b>myself.</b></p>
<p>THOSE SHOULD HAVE BEEN 200</b>7!!</B></p>
<p>Heh, uh.. um, er.. my bad?</p>
<p><i>So what happened?</i></p>
<p>Well, that <b>super-robust and stable</b> biller did what it was <i>programmed</i> to do, it ran as though <b>today</b> was December 31st, 200<b>8!</b></p>
<p>And what did it see? Well, it saw a <b>whole lot of accounts</b> (essentially <i>all</i> of them) who for some <i>unknown, mysterious reason</i> hadn&#8217;t been charged <b>at all</b> for <i>eleven and a half months!</i></p>
<p>So off it went, busily through the night, <i>&#8220;fixing&#8221;</i> everything up for <i>&#8220;today&#8221;,</i> <b>December 31st, 2008.</b></p>
<p>Really, it&#8217;s sort of <i>amazing</i> this never happened before in the last ten years.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/01/newrecord.png' alt='We have a NEW SUPPORT RECORD!' title="We have a NEW SUPPORT RECORD!" /></p>
<p><b>There IS a bug here.</b></p>
<p>I can imagine the <i>half second or so</i> of thought that sprinted through the programmer&#8217;s mind when he was adding the ability to allow you to pass in what day to run the biller as though today is:</p>
<blockquote><p>
<i>Hmm.. well, I could see us <b>POSSIBLY</b> wanting to be able to bill for a <B>future date.</b></i>
</p></blockquote>
<p>Well guess what&#8230; <b>NO!</b> We will <i>NEVER</i> want to rebill as though today were a day <b>that hasn&#8217;t happened yet!</b> But instead, somebody along the line (Sage? Me? Somebody else?) figured, <i>&#8220;What&#8217;s the harm in keeping it flexible?&#8221;</i></p>
<p><b>About $7,500,000 in harm, that&#8217;s what!</b></p>
<p>The serious part.</p>
<p><b>The end to this story</b> is that of course, <b>I&#8217;m</b> very very sorry, <b>we&#8217;re</b> very very sorry, and I&#8217;m sure <b>you&#8217;re</b> very very sorry this happened. I really am. I understand the sort of problems that an unexpected large charge to your credit card (or worse yet, your debit card) can cause. If the tone of this blog post seemed a little light, I apologize I don&#8217;t mean to offend and I realize how serious an issue this is. I&#8217;ve been up since 3:50am trying to undo the damage and maybe I&#8217;m a little shell-shocked.</p>
<p>A new service is running right now (in parallel on all the controllers) that fixes all those future charges, re-enables your account if it was erroneously suspended, and if your credit card was automatically rebilled, refunds the payment automatically. You <b>don&#8217;t</b> have to contact us or your bank, and you&#8217;ll get an <b>email</b> when your account is finished fixing up. It&#8217;s going to take <b>several more hours</b> to complete. There are (or were, after this incident) <i>a lot</i> of you these days!</p>
<p>If, because of this billing mistake, you somehow incurred some fees from your bank or credit card company, please let us know <b>after tomorrow</b> (<i>today</i> we are just replying to <b>all</b> <i>10,000+</i> billing messages with a generic explanation) and we&#8217;ll do our best to make it right for you.</p>
<p>And of course, the biller no longer allows dates in the future.</p>
<p><b>The <i>moral</i> of this story</b> is that <i>&#8220;flexibility&#8221;</i> is rarely desired in programming! The <b>less</b> a program will accept/the <b>less</b> a program will do/the <b>less</b> options and preferences it has, the <b>more</b> usable it is/the <b>more</b> understandable it is/the <b>more</b> stable it is.</p>
<p><b>Tough Love</b></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2008/01/toughprogrammer.jpg' alt='I wouldn’t want him to compile me!'  title="I wouldn't want him to compile me!"/></p>
<p>When designing a program, you&#8217;ve got to make some <i>tough decisions</i> .. and when you really can&#8217;t decide if this is something your users will need someday, <b>err on the side of leaving it out.</b></p>
<p>Otherwise, your users will someday <b>err on the side of <i>your face.</i></b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2008/01/15/um-whoops/feed/</wfw:commentRss>
		<slash:comments>673</slash:comments>
		</item>
		<item>
		<title>Schadenfreude</title>
		<link>http://blog.dreamhost.com/2007/07/24/schadenfreude/</link>
		<comments>http://blog.dreamhost.com/2007/07/24/schadenfreude/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 07:30:03 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Tech News]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2007/07/24/schadenfreude/</guid>
		<description><![CDATA[
Almost exactly a year ago today, DreamHost experienced its last unplanned power outage.
Last ever?
Last ever so far! Who knows what the future holds? (Besides me.)
But for now, I&#8217;m just glad the present has been a little better for DreamHost customers than for 365 Main&#8217;s!
Because in case you hadn&#8217;t heard or noticed, power outages in San [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/07/365main1.jpg' alt='I feel SOOOOO bad for them.' title="I feel SOOOOOO bad for them."/></p>
<p>Almost exactly a year ago today, <A href="http://www.dreamhoststatus.com/2006/07/23/all-services-back-up/">DreamHost experienced its last unplanned power outage.</a></p>
<p>Last <i>ever?</i></p>
<p>Last ever <i>so far!</i> Who <b>knows</b> what the future holds? (Besides <a href="http://blog.dreamhost.com/2007/07/20/friday-predictions/">me.</a>)</p>
<p>But for now, I&#8217;m just glad the <i>present</i> has been a little better for <a href="http://www.dreamhost.com/">DreamHost</a> customers than for <a href="http://www.365main.com/">365 Main&#8217;s!</a></p>
<p>Because <a href="http://laughingsquid.com/massive-power-outages-hit-san-franciscos-soma-district">in case you hadn&#8217;t heard or noticed,</a> <b>power outages</b> in San Francisco today caused <i>downtime</i> at <a href="http://craigslist.org/">Craigslist,</a> <a href="http://technorati.com/">Technorati,</a> <a href="http://www.TypePad.com/">TypePad,</a> <a href="http://www.LiveJournal.com/">LiveJournal,</a> <a href="http://www.yelp.com/">Yelp,</a> <a href="http://www.redenvelope.com/">RedEnvelope,</a> and more!</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/07/sf.jpg' alt='San Francisco in August, 2007.' title="San Francisco in August, 2007."/></p>
<p><b>Who here</b> is glad DreamHost is in sunny, safe, earthquake, mudslide, forest fire, riot, tsunami-free, <i>Los Angeles</i> <b>now?</b> And <b>who here</b> is publicly enjoying that 365 Main is <i>not?</i></p>
<p>Here&#8217;s a big hint: <b>he&#8217;s really good looking and wrote this post.</b></p>
<p>Of course, the <b>real</b> reason we had no problems is <i>not</i> because our data center is finally <b>super</b> reliable, or that Los Angeles itself never has <i>so much as a cloudy day,</i> or even that we&#8217;re <i>just lucky.</i></p>
<p>It&#8217;s because <b>I</b> am in Chicago at <a href="http://www.hostingcon.com/">HostingCon</a> and so am <i>temporarily</i> unable to <a href="http://blog.dreamhost.com/2007/07/13/friggatriskaidekaphobia/">break anything.</a></p>
<p>Of course, that&#8217;s not <i>really</i> true either. I&#8217;m <b>not</b> in Chicago; as everyone knows, I&#8217;m a compulsive liar. In fact, <b>this statement is a lie.</b></p>
<p>But, even if I <i>was</i> at <a href="http://www.hostingcon.com/">hosting con</a> (and everybody knows <a href="http://www.dreamhost.com/aboutus.html">we don&#8217;t go to hosting conventions),</a> my ability to break DreamHost systems knows no boundary of time or space, and strikes at any time, usually without warning and <i>definitely</i> without <b>mercy.</b></p>
<p><b>Why <i>were</i> we were spared this time?</b></p>
<p>The honest truth is that <b>any</b> data center can, at <b>any</b> time and for <b>any</b> reason, no matter <i>what</i> precautions they take, have an outage! You&#8217;d <i>think</i> making a reliable data center would be a <b>lot</b> easier than making a reliable software service, seeing as how it&#8217;s all just <b>power cables, air conditioning, and gasoline.</b></p>
<p>And yet <b>somehow,</b> it seems like all even the <i>best</i> and <i>most expensive</i> data centers can do is make the outages a little less <i>frequent.</i></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/07/unplug.jpg' alt='"Jem" is for "Josh: Everybodys Master".' title='"Jem" is for "Josh: Everybodys Master."' /></p>
<p><b>What IS a <i>poor</i> host to do?</b></p>
<p><i>Nothing, really.</i></p>
<p>I mean, the <b>only</b> way you can really achieve &#8220;five nines&#8221; uptime is by having an <B>entire</b> architecture designed around the assumption that <b>ANYTHING</b> can fail&#8230; and at the worst possible time. <i>Duh.</i></p>
<p>However, like most Las Vegas escorts, that sort of redundancy <b>does not come easily.</b> Or <i>cheap.</i> And the truth of the matter is unless you&#8217;re Google, most likely an entire <b>day</b> of downtime once a year is <i>not</i> going to cost you as much as it would to <b>truly</b> prevent it.</p>
<p>In fact, I <i>wish</i> there were some <b><i>low</i>-reliability</b> data centers out there! I bet if somebody made an <i>ultra low-cost</i> data center, one that provided &#8220;adequate&#8221; cooling, network, and power capacity, but <b>no</b> UPS, fire-suppression, generators, crazy physical security, or extra earthquake protection, <b>they would clean UP.</b></p>
<p>They could probably charge around <b>half</b> of any data center <i>I&#8217;ve</i> ever seen, and I bet with only <b>twice</b> the downtime&#8230; and that would be <i>very</i> appealing.</p>
<p>I mean, think about it&#8230; how many of <i>you</i> could deal with an extra day of downtime per year for <b>half the price?</b> Heck, you&#8217;d probably be fine with <i>FOUR</i> days of downtime a year if it meant <b>75% off..</b> but would you pay <i>double</i> to <b>save</b> 12 hours of downtime a year? Would you pay <i>FOUR times as much</i> to save <b>18?</b> <i>Eight times as much</i> to save 21?</b></p>
<p>That&#8217;s pretty much how it works, and I&#8217;m guessing <b>not a lot of you would.</b></p>
<p>Of course, <b>maybe</b> I&#8217;m over-estimating the cost savings of skimping on redundancy in a data center a <i>little,</i> and <i>maybe</i> I&#8217;m under-estimating the reliability hit a <i>tiny bit.</i> On the other hand, my blog posts have <a href="http://blog.dreamhost.com/2007/01/08/apple-welcomes-us/">never been wrong before.</a></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/07/crapdata.jpg' alt='The more wires, the more porn.' title="The more wires, the more porn." /></p>
<p><b>AND,</b> if somebody <i>did</i> come out with a &#8220;Crap-of-the-Art&#8221; data center, it&#8217;d make it a lot more feasible for those who <b>really</b> <i>need</i> reliability to get <b>two;</b> thereby keeping all their company&#8217;s eggs out of one risqu&eacute; basket.</p>
<p><b>In fact,</b> what <i>we&#8217;ve</i> been doing over the last year is breaking our system down into smaller and smaller isolated <b>&#8220;clusters,&#8221;</b> and distributing them between <i>three</i> data centers (all in LA). The idea being, data centers <b>will</b> go down.. let&#8217;s at least try and keep the eggs in our <i>other</i> baskets un-scrambled. And since we&#8217;re not really counting on much reliability from them anyway, it <i>sure would be nice</i> if those data centers all <b>charged</b> a lot less!</p>
<p>Of course our <b>network</b> still has a single (though redundant) point of failure, but we <i>are</i> working towards eventually making each data center a complete stand-alone &#8220;node&#8221;&#8230; <b>some day.</b></p>
<p><b>This</b> day, however, I think I&#8217;ll just go to bed&#8230; <a href="http://en.wikipedia.org/wiki/Schadenfreude">while taking pleasure</a> in the fact that <b>it was <i>somebody else</i> this time!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2007/07/24/schadenfreude/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Super Lame Apology</title>
		<link>http://blog.dreamhost.com/2007/02/28/super-lame-apology/</link>
		<comments>http://blog.dreamhost.com/2007/02/28/super-lame-apology/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 06:14:55 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2007/02/28/super-lame-apology/</guid>
		<description><![CDATA[
We are all really bearry sorry about the extended downtime this Sunday from the planned power outage!
The power was only out for about an hour, but as it came back on, there was trouble, trouble, trouble. Our router started acting funny, some file servers were mis-configured, some web servers didn&#8217;t want to come back on, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.holisticforgeworks.com/gallery/sketchbook/"><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/i-am-sorryatomotoon.gif' alt='I am really bearly sorry!' title="I am really bearly sorry!" border=0 /></a></p>
<p>We are all <i>really bearry sorry</i> about the extended downtime this Sunday from the <a href="http://blog.dreamhost.com/2007/02/23/read-this-now/">planned power outage!</a></p>
<p>The power was only out for about an hour, but as it came back on, there was <b>trouble, trouble, trouble.</b> Our <i>router</i> started acting funny, some <i>file servers</i> were mis-configured, some <i>web servers</i> didn&#8217;t want to come back on, and so on, and so on, <i>and so on</i>&#8230;</p>
<p>Although <i>most</i> things were back up and running within the five hours, the network in general was still flakey for about <i>8 hours,</i> and everything wasn&#8217;t <B>TOTALLY</B> fixed for about <i>36 hours.</i></p>
<p>We really thought things would go <i>a lot smoother,</i> given that for <b>once</b> we had some advance warning, but good old Murphy was in full effect, y&#8217;all, again.. <i>urgh.</i></p>
<p>Anyway, to try and make up for it a little bit, we thought we&#8217;d offer something we&#8217;ve <i>never offered before</i> at DreamHost, something we <i>thought we&#8217;d never need,</i> something <i>we always thought a little silly&#8230;</i> an <b>SLA!</b></p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/sorry.jpg' alt='Even GOD is sorry!' /></p>
<p>That&#8217;s right, I&#8217;m offering you a&#8230; <b>Super Lame Apology!</b></p>
<p><b>HA ha ha!</b> Oh, did you think I meant a <i>&#8220;Service Level Agreement&#8221;?</i></p>
<p><i>But <b>really,</b> isn&#8217;t that all a typical SLA is?</i> </p>
<p><i>&#8220;We&#8217;re sorry we broke our promise, here&#8217;s credit for the 46 minutes you were down. Sorry.&#8221;</i></p>
<p><b>Lame!</b></p>
<p>In web hosting, it&#8217;s usually a credit for the <b>exact</b> amount of time you were down, sometimes a full day&#8217;s worth, or I guess if you are really paying a lot, a month&#8217;s worth.. though an SLA like that even in the high-end business world would be a <b>rare animal indeed.</b> </p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/animal.jpg' alt='Animal ate it! Sahhhhry!' /></p>
<p>In the case of the outage this past weekend, if you were paying $8.95 a month you were down for anywhere from <i>6</i> to <i>44 cents</i> worth of service. What would you think to yourself if we automatically credited you <i>44 cents</i> on your next monthly bill? </p>
<p>You&#8217;d <i>probably</i> think either:</p>
<p><b>A.</b> <i>Is this 44 cent credit because February only had 28 days?</i> </p>
<p>or</p>
<p><b>B.</b> <i>My site is down for <b>hours</b> and all I get is 44 cents?! That barely pays for the stamp I&#8217;m going to need to mail my foot all the way up your butt, DreamA$$Host!!</i></p>
<p>In fact, even if we gave you a full month&#8217;s credit, <b>$8.95,</b> you&#8217;d probably think the same thing. Either <b>A.</b> you didn&#8217;t really care, and the money doesn&#8217;t matter, or <b>B.</b> you really <b>did</b> care, <i>and the money doesn&#8217;t matter.</i></p>
<p>The truth is though, we <b>do</b> offer an &#8220;SLA&#8221;&#8230; the same <i>&#8220;service level agreement&#8221;</i> you&#8217;ll find at McDonalds, Nordstrom&#8217;s, Staples, or just about any other successful business. If any customer <b>ever</b> comes to us with even an <i>eigth</i>-way legitimate gripe, we&#8217;ll do our best to fix it, even if it means giving them an account credit or their money back (even <b>after</b> our 97-day money-back guarantee period). Better to lose a customer on <b>good terms</b> than on bad, eh?</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/03/dhtechnorati.gif' alt='Oscars, Naked American Idols, DreamHost.' title="Oscars, Naked American Idols, DreamHost" /></p>
<p><i>So, if we&#8217;ll happily give refunds anyway, why not go ahead and lay it all out in a &#8220;real&#8221; SLA?</i></p>
<p>I guess mostly because <i>we feel they&#8217;re <b>B.S.</b></i> Case in point, <i>we actually have SLAs from our data centers!</i>  Which is why I sleep <b>so</b>well at night, <i>knowing</i> our servers are safe and sound. <b>HA!</b></p>
<p>Not only do they <b>fail to meet the SLA,</b> I believe we&#8217;ve never gotten a <b>single</b> service credit out of them for outages&#8230; <i>and I&#8217;ve asked!</i></p>
<p>The <i>only</i> useful thing you can get out of an SLA is the ability to <i>break a long-term contract</i> without penalty. All you <b>really</b> want is for everything to just <i>work.</i> If you&#8217;re constantly having to exercise your SLA, you&#8217;d trade <b>all the service credits in the world</b> for a new provider!</p>
<p>If that&#8217;s not the case, you don&#8217;t <b>really</b> care about the downtime and are <i>just complaining to get the money!</i> <b>Shame on you!</b> Go back to <a href="http://www.fatwallet.com/">fatwallet.com</a> where you come from! <i>Hissssss!</i></p>
<p>All I&#8217;m saying is, since we&#8217;re in an industry with <b>such</b> a low barrier to entry, and since there&#8217;s <b>nothing</b> stopping you from switching hosts at any time, we <i>really</i> already have <b>a lot</b> of incentive to <b>make our service as good as we can.</b></p>
<p>I know we fubar it sometimes, and I know we fubar it <b>a lot,</b> and when we do, you guys are doing the right thing by bitching and moaning and <i>even quitting us</i>. But a service level agreement wouldn&#8217;t change a <b>thing.</b></p>
<p>So, <i>so-o-o-o-o-o-o-orry!</i></p>
<p>And that&#8217;s the <b>Super-est, Lame-est, Apology-est</b> SLA you&#8217;re going to get!</p>
<p><script type="text/javascript">
<!--
digg_url = "http://www.digg.com/tech_news/In_face_of_outage_DreamHost_offers_SLA/";  
//--></script><br />
<script type="text/javascript" src="http://digg.com/api/diggthis.js"></script><br />
<script type="text/javascript">
<!--
reddit_url="http://blog.dreamhost.com/2007/02/28/super-lame-apology/";  
//--></script><br />
<script language="javascript" src="http://reddit.com/button.js?t=3"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2007/02/28/super-lame-apology/feed/</wfw:commentRss>
		<slash:comments>157</slash:comments>
		</item>
		<item>
		<title>Read This Now!</title>
		<link>http://blog.dreamhost.com/2007/02/23/read-this-now/</link>
		<comments>http://blog.dreamhost.com/2007/02/23/read-this-now/#comments</comments>
		<pubDate>Sat, 24 Feb 2007 01:38:57 +0000</pubDate>
		<dc:creator>Josh Jones</dc:creator>
				<category><![CDATA[Foobars]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Insider View]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://blog.dreamhost.com/2007/02/23/read-this-now/</guid>
		<description><![CDATA[
Quick, before it&#8217;s gone!
If you enjoy all the hilarious hijinks, illuminating illustrations, and jovial jokes of the DreamHost Blog, you better suck down a local copy TODAY&#8230;
We&#8217;re having a planned power outage tomorrow night!
(Click that link for some more details.. it&#8217;ll be from 11:15pm PST (GMT -0800) tomorrow night (Saturday) to hopefully much less than [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/actnow.gif' alt='Just in time for the Academy Awards!' title='Just in time for the Academy Awards!'/></p>
<p><b>Quick, <i>before it&#8217;s gone!</i></b></p>
<p>If you enjoy all the <b>hilarious</b> hijinks, <b>illuminating</b> illustrations, and <b>jovial</b> jokes of the DreamHost Blog, <b>you better suck down a local copy TODAY&#8230;</b></p>
<p><a href="http://www.dreamhoststatus.com/2007/02/22/planned-power-outage/">We&#8217;re having a <b>planned power outage</b> tomorrow night!</a></p>
<p><i>(Click that link for some more details.. it&#8217;ll be from 11:15pm PST (GMT -0800) tomorrow night (Saturday) to hopefully much less than 5 hours from then.)</i></p>
<p>Not planned by <b>us</b> though, planned by our building. It would have been <b>very</b> nice if they could have given us a little earlier heads up, or <i>avoided the outage at all,</i> but no, they just can&#8217;t. And trust me, we want this to happen <b>even a tiny bit less than you do!</b></p>
<p>So, this site will be down then, as well as <b>all</b> other DreamHost services, with the exception of <b>ns2.dreamhost.com</b> and <a href="http://www.dreamhoststatus.com/">dreamhoststatus.com,</a> which are kept off-site for exactly this sort of situation.</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/antarctica1.jpg' alt='Off-site. WAY off-site.' title='Off-site. WAY off-site.'/></p>
<p>Well, I just thought I better post something about it here too.. thanks for your understanding, and we&#8217;re <i>really really really <b>really</b></i> sorry.</p>
<p>P.S. Here&#8217;s the pic the building emailed us of the problem:</p>
<p><img src='http://blog.dreamhost.com/wp-content/uploads/2007/02/image001.jpg' alt='Well, that clears THAT up!' title='Well, that clears THAT up!'/></p>
<p>So, um, yeah. I <i>think</i> what that shows is a piece of metal is vibrating next to that wire and cutting into the rubber insulation&#8230; and if it gets much further in, <b>KABOOM!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamhost.com/2007/02/23/read-this-now/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>
