Tag computing

AT&T and the iPhone 4 Pre-Order Debacle

Yesterday, we’re told, the crush of fanatical fanboys pre-ordering iPhones brought AT&T’s servers to their knees.  Apple and AT&T pre-sold 600K iPhones, and we’re told they processed 13 million eligibility requests during the day, as people tried over and over to get through.  Random reports surfaced about how the crushing load “crippled” AT&T’s internal network, and caused security glitches and the exposure of private customer data (again).

We’re supposed to believe that this overwhelming traffic load was unprecedented and brought their systems to a screeching halt.  Well, at least AT&T’s systems — Apple’s systems seemed fine if you weren’t going through the eligibility portion of the check.

Here’s the problem, though — if you run the numbers, and know something about web/database applications, it just doesn’t add up.

13 million database queries sounds like a lot.  But let’s say that all of these queries largely happened in the first 12 hours of the day yesterday, instead of spreading them out over the full 24 hour cycle.  That’s 1.08MM queries per hour, or 300 queries per second, on average.

I don’t know if it sounds like a lot to you, but it’s really not.  Here’s a Google query on “mysql queries per second” just to get a general idea of what people are doing out there.  Many of the results range from 2003 through the present, and folks are doing a LOT more than this.  With clustering and various attempts to scale out, folks are doing 10-20K per second.  Oracle, properly tuned, can do thousands to tens of thousands of transactions (operations that change data, not just read it) per second.

I’m not a database expert, but I’ve worked around and with them for years, and I’ll say that 300 queries per second on average is not something that should cause one of the largest (and oldest, if one considers them the heir of the Bell System) telecom companies in the world to crumple under the load.

But traffic is bursty, not uniformly distributed.  So even if they saw periods with 10-50x greater load than average, we’re still in the ballpark for reasonable performance on a pure database query.  Note that I’m assuming that eligibility is a somewhat simple database query; we gave three items of data which obviously form a compound primary key, and AT&T is supposed to return some information about eligibility for upgrade:  perhaps date, perhaps a few other bits of info.

Let’s be generous and assume that 1K of data per eligibility request is returned (i.e., there’s little concern for efficiency).  That’s still only about 300K bytes per second of query results flowing back to Apple from AT&T, or about 2.4Mbps.  Again, perhaps bursting to 20-100Mbps for very brief periods of time.  In other words, a couple of DS3s or a fast ethernet cross-connect are sufficient to carry the data back and forth.  One imagines this shouldn’t strain AT&T’s internal network too much, despite random claims yesterday.

Of course, maybe the problem here isn’t database performance or bandwidth, but that AT&T did the eligibility checks as API calls through a large enterprise system where a single check builds and then tears down many EJBs or other enterprise objects. This might be closer to the truth for a performance bottleneck here.  Maybe the system was built to handle tens, but not hundreds or thousands, of requests per second.  That’s plausible, but kind of stupid for a large engineering company used to having millions of subscribers and doing business globally.  But I could buy it.

But you’d imagine that they’d have learned something from three previous “major” iPhone releases, and the iPad 3G release, and figured out an easier way to quickly respond to eligibility requests.  After all, my eligibility isn’t a rapidly changing variable — I’m eligible on a certain day, and they know what that day is.  Which means that the eligibility of every iPhone owner on the planet could have been precalculated easily just before the iPhone4 launch, and cached.  It’s not that much data, frankly.  You could have cached a table with the user’s phone number, last 4 SSN, and zip (the keys they ask you to enter) hashed, and a eligibility “price code”, in a few gigs of memory on all the app servers, and just statically responded to queries for the first 24 hours, if you were worried that your enterprise systems wouldn’t handle “first day” load.

Anyhow, these are just ballpark figures, and they could be wildly wrong about the instantaneous loads experienced, etc.  But the general point is, 13MM eligibility checks and 600K preorders isn’t really a lot of load and traffic.  Ask Amazon or eBay what “a lot” of transactions looks like.

Or better yet, AT&T, before the next launch, hire some of their ex-employees to take a look at your databases and systems.  Please.

 

Doctorow v. Johnson: iWhatevers versus Open Platforms and the Future of Computing

This last weekend the first iPads shipped to early adopters in the general public, including me. Like many of us in the technology business, I’ve kept a weather eye on the first impressions of many folks on the web, and friends in the industry. Most of these reactions are the stuff of geek discussion, and not terribly enlightening either about the device and its potential future uses, or the direction in which our industry is moving.

But one exchange is worth analysis and our attention, whatever the details of the device and our first impressions. Cory Doctorow, open-source freedom fighter extraordinaire and speculative fiction author, published a widely discussed, negative essay concerning the very idea of the iPad. By now, you’ve probably read it, or seen the link. If you haven’t, you should.

Cory’s essential points are two (with apologies if I’m missing something serious). First, that open platforms (think Linux, Android, FreeBSD, etc) are structurally designed to foster innovation at minimal entry cost, and with minimum friction to the innovator, and minimal interference between the innovator and the eventual consumer of those innovations. Second, Doctorow argues that the justification everyone is citing for the closed system — “making computers easy for mainstream users” — is insulting to mainstream users.

Joel Johnson responds that Doctorow’s principal arguments miss the point. In particular, that openness and innovation are not causally linked to the extent that open-source and Linux advocates claim. That innovation will thrive on the “nearly closed” platforms like the iPad and iPhone.

An iTunes irritation…

I’m watching TV almost exclusively from the Internet nowadays, and mostly by subscribing on iTunes and watching in HD from my AppleTV. This works incredibly well, once you have the season downloaded and ready to play.

The downloading process exposes some seriously irritating bugs and/or design flaws in iTunes, however. I live at the northern edge of civilization on an island (well, my Canadian friends would say the southern edge, and after reading coverage of the Tea Party Convention I’m inclined to agree…) and I have “difficult” internet connectivity. This is no fault of my local ISP, who do an amazing job considering where I live.

But I often encounter TCP resets in long downloads given the Motorola Canopy point-to-point wireless I use, and iTunes really behaves badly. Despite having typed my Store password to begin the download, upon resumption, iTunes will ask me again. And again. And again. Possibly once for every stream that needs to be resumed, but it doesn’t seem to be as well patterned as that. The application hasn’t restarted, I haven’t logged out, it’s the same hardware underneath, why can’t the application cache the Store password used to initiate a given set of downloads for the duration? Perhaps only asking me to retype if the application closes and restarts?

This seems trivial, but if it happens frequently, and you’re not sitting in front of the computer to type your password whenever needed, downloading a season of episodes can literally take days. Three thus far, in fact, for a show I’m subscribing to at the moment. With 29 more items to go. Basically, it’s going to take a week of retyping my iTunes Store password to get the entire season down, given my internet connection (which is normally pretty decent for browsing and other purposes).

Doesn’t anybody in Cupertino test this type of use case?

Additional thoughts on the iPad

It’s been a week since the iPad announcement, and like many in this business, I’ve followed the opinions and punditry. My personal view is that the iPad is going to be a great product for Apple. It will also — and this isn’t quite the same as being a great product — be a commercial success.

There’s a lot of criticism about what the device doesn’t have built-in, or doesn’t support. And there’s been a lot of “why, it’s nothing but a big iPod Touch.” And the usual lists of “must have but missing” features from engineers and developers who are already gnashing their teeth about how useless the iPad will be.

Here’s why we should ignore premature predictions of doom for the iPad.

Sure, there’s nothing shockingly new here. In a sense, it’s a big iPod Touch. Or it’s a slimmed down Tablet PC with integral Kindle. Actually, it’s all of those things.

What we’re forgetting is that Apple’s main strength isn’t necessarily inventing a new category (marketing spin aside), it is in bringing hard-core user research and industrial design to bear on creating devices which end up “crossing the chasm” to the mainstream for a given technology. THAT is what Apple, and Steve Jobs, are good at.

iWork for the iPad: Game changer for the software business

Amidst all of the positive and negative opinion pieces and postings which followed Apple’s iPad announcement this week, the impact to software businesses are only starting to become apparent. I think Apple’s announcement that iWork pricing will be $9.99 per app is significant.

It’s game changing not for third-party ISVs already developing for the iPhone, since they’re used to charging 99 cents to a few bucks for an app. For Mac software developers like OmniGroup, it’ll be challenging. There is already a large Mac software ecosystem with apps priced in the $20 – $60 range. These ISV’s have continued to charge such prices even while iPhone app prices dropped a zero, because the difference in functionality and screen size between a Mac laptop and the iPhone is significant. The difference in what users can do is significant.

iWork on the iPad is a laptop/desktop experience, suitable for the vast majority of home and many business users. And yet Apple dropped a zero on the pricing, basically. With a presentation program, word processor, and spreadsheet available for $10 each, or $30 for the entire productivity suite, how will third party ISV’s charge $50 or $60 for an iPad version of their Mac software apps? Perhaps they can’t.