iAftermath - and how ColdFusion held up

This post is more than 2 years old.

Yesterday I wrote a little blog entry on how the upgrade experience for my iPhone didn't go so well (by the way, it's all good now and I'll have another blog entry about the 2.0 firmware later today). Little did I know that a few other people were having issues with their upgrades as well. All of a sudden I began to get a regular flood of comment emails. I started watching the stats for the entry and couldn't believe what I was seeing.

By lunch time, the blog entry had around 5000 views. The number of comments had surpassed the previous record holder (Call to BlogCFC Users). By the time my day ended, the views were around 15000, and the comment count had gone over 900.

The entry ended up being my #5 entry with over 16,000 views. You can see how it compares to others entries on my stats page.

So how did ColdFusion hold up? Really well I think. Over the entire day I got about 10 error emails from the server. 9 of which were:

[Macromedia][SQLServer JDBC Driver][SQLServer]Transaction (Process ID 72) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

I read this as simply so much traffic going to SQL Server that it got a bit overwhelmed. I never saw this error on the site myself though, and again, it only fired a few times over the day.

The other error I saw occurred once:

Element pod_archives is undefined in a CFML structure referenced as part of an expression.

This was thrown by the scopecache tag, and I was a bit surprised by this. All I can guess is that the RAM based cache maybe got confused at some point under the load.

Although really - how big was the load? My views for the entry were around 15,000 last night, but the views count is a bit low compared to actual page count. A lot of folks were sitting there, reloading, posting new comments. I use the Session scope to remember which entries you have viewed, and I only increase the view count once per session. I checked Google Analytics this morning. Check out the spike:

Even with that spike though, my page views were only at 22,000. That's 660,000 page views per month. I used to run DeathClock.com on a shared host with ColdFusion 5 and get 4 million hits per month. Oh, and that was with Access as a database. (Because I was cheap!)

Anyway, it was certainly fun to watch and I'm happy that most of the 900+ folks commenting kept a somewhat civil tongue. I ended up being quoted on MSNBC as well, which was kinda cool:

The 'iPocalypse' is at hand

Apparently I'm a technophile! I hope no one tells her I'm normally scared of hardware. (Mainly because I have big, clumsy hands, and I'm always afraid I'm going to snap a ram chip like a pretzel.)

Raymond Camden's Picture

About Raymond Camden

Raymond is a senior developer evangelist for Adobe. He focuses on document services, JavaScript, and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support. You can even buy me a coffee!

Lafayette, LA https://www.raymondcamden.com

Archived Comments

Comment 1 by Todd Rafferty posted on 7/12/2008 at 7:20 PM

Technophile does not mean what you think it does. :)

"Technophilia is, in its simplest definition, a strong enthusiasm for technology, especially newer technologies such as computers, the Internet, cell phones and home theater. It is used in sociology when examining the interaction of individuals with their society, especially contrasted with technophobia."

http://en.wikipedia.org/wik...

Comment 2 by Jimmy posted on 7/12/2008 at 7:40 PM

Wow! You're a star! What site linked to you to make it blow up so much? My site guitarherobrokemyknee.com was Dugg and on the front page of Fark a couple of years ago and ColdFusion did a great job standing up to the test.

Comment 3 by Todd Rafferty posted on 7/12/2008 at 7:55 PM

btw, I would have loved to have been watching fusion reactor or something while the website was chugging along.

Comment 4 by Raymond Camden posted on 7/12/2008 at 8:07 PM

@Jimmy - 80% of the link ins were from Google. Only a small amount came from MSNBC or the ComputerWorld article.

@Todd - I guess that does describe me I guess. ;) And yea, I was kinda curious to look too, but frankly, I didn't want to touch ANYTHING while this was going on. As long as things were 'working', I figured I shouldn't look too closely.

Comment 5 by TJ Downes posted on 7/12/2008 at 9:07 PM

Hey Ray, gratz on the free advertising ;)

I just wanted to point out that I do not think either error is related to what you may think. SQL Server is designed to handle thousands of transactions per second, so I would probably blame this on the hardware it is hosted on, JDBC driver or code. Is your database hosted on the same server as your website?

In regards to the error you were having with the cache, again, RAM memory is incredibly fast and reliable. Therefore I would probably look deeper into the cause of that error as it sounds like it may have something to do with the mechanics of the scopecache tag. You may have a memory leak issue in the code? Were you able to track the server's memory usage at all during that time?

Comment 6 by Brian Swartzfager posted on 7/12/2008 at 9:17 PM

Congrats on the MSNBC coverage: that's pretty cool.

Comment 7 by Chris posted on 7/12/2008 at 9:58 PM

I'm certain the traffic came from this Tweet:

http://twitter.com/peterme/...

Peter has 1,500 followers on Twitter - lots of eyeballs, and obviously interest, in iPhone-related posts yesterday.

Comment 8 by Joe Rinehart posted on 7/12/2008 at 10:20 PM

> [Macromedia][SQLServer JDBC Driver]
> [SQLServer]Transaction (Process ID 72)

Hrm...I wonder if MySQL (InnoDB) would handle this any better.

Anything in the CF log files as to what was going on / what script was running / what query failed when this happened?

-Joe

Comment 9 by Brad Wood posted on 7/12/2008 at 10:54 PM

Congrats, Ray-- you're a star!

~Brad

Comment 10 by Hatem Jaber posted on 7/12/2008 at 11:44 PM

That's weird that SQL Server was erroring like that. We're running MySQL InnoDB and we insert 10's of thousands of records per day and have not had any issues like that. But on the other hand, we do have a beast for a dedicated database server which probably helps having the db separated from the actual front end servers.

Congrats on the post, I was amazed when i went to the blog and seen that many comments in a matter of hours, I had to open it up myself and look to see if it was a spam attack or whatever it was.

From my experience, I've installed blogcfc for several people and I've noticed that it is very search engine friendly and gets indexed quite easily. In your case, you're using analytics to start with so that gives google an inside track to the return traffic you have which helps them determine that your site is worthy of indexing. When I switched to analytics on one of my sites, in a matter of months we went from 500 to 1000 referrals a month to 7000 referrals a day.

Keep up the great work!

Comment 11 by Hamish posted on 7/13/2008 at 4:43 AM

Ah yes, the good old standard SQLServer / JDBC Driver deadlock error. We've been getting that little gem for a while now in our web app, and although its incidence dropped with our beefy new DB server, it still pops its head up now and again. Either SQL Server doesn't do well with locks, or the driver is doing something weird, or perhaps it's something else that shows up under load.

Now that we're on SQL2005, we're looking at using SET TRANSACTION ISOLATION LEVEL SNAPSHOT; on our SELECTs, which should avoid using locks. More info is here: http://msdn.microsoft.com/e...

Note that we haven't actually done this yet, but it's on my list and looks like it might help to stop SELECTs creating locks when they really don't need to.

Comment 12 by Gary Gilbert posted on 7/13/2008 at 2:39 PM

@Ray,

Holy Crap 660k page-views a month! Thats pretty incredible.

Nice going! I guess that shows the kind of weight you have in this little corner of the web.

Grats on the coverage.

Comment 13 by Raymond Camden posted on 7/13/2008 at 4:30 PM

Gary, read the entry again. I _would_ get 660, if everyday was like Friday. ;) In general I get 4k hit per day, which is around 120k hits per month.

Comment 14 by Raymond Camden posted on 7/14/2008 at 11:56 PM

@TJ:

Nope, SQL Server is on another machine. It's not dedicated, but I have 'most' of it.

ScopeCache may indeed have a leak as there was something a bit like this in blogcfc. I had to error trap something that I was convinced couldn't happen - but regularly did for some people.