February 11, 2005

online gaming nostalgia

Looking at one of the newest online game craze, which happens to be somewhat of a fantasy sport, made me think of the first online war-game I played: Modem Wars, by Dan Bunten. It was a two-player game where one person called the other with a 1200 baud modem to play a hybrid warfare/football game called "Sport of War". It carried many of the elements of today's Real-Time Strategy games like Warcraft 3 and Command & Conquer. You can download the documentation to Modem Wars along with a copy of the game for DOS. It's only 116k :-)

What's more interesting is the story around the creator of the game. The greatest selling computer game of all time is Will Wright's "The Sims". He dedicated it to Dani Bunten. Dan was the creator of M.U.L.E., and Seven Cities of Gold, both forrunners of Sid Meier's Civilization (which Dani claims she was going to write, but Sid got to it first). In the early 1990's, after the failure of his second marriage, he had a sex change and bacame Dani Bunten. (See the gallery at Dani's memorial page). Dani is considered one of the greatest game designers of all time. She died in 1998 from lung cancer. I highly suggest you read those links on above (especially the Salon article) if you are interested in computer games , and game history.

Posted by stu at 08:17 AM

February 03, 2005

IBM vs Oracle in the TPC

The latest TPC-C benchmarks are an interesting war between Oracle's RAC vs. IBM DB2 on an SMP machine. A recent Usenet skirmish broke out on this, one that I feel the urge to echo here.

Benchmarks are rather useless for real-world comparison purposes, as all the machines are apples/oranges, but it makes for good entertainment. I liken it to a combination of horse racing (who will be fastest this time?), car stereo contests (stereos with bass response and wattage that could kill small animals), and fantasy football (what would have happened if XYZ conjectural system were used instead)?

I'm going to take the fantasy football route, briefly, because I'm a believer in clustering and am very interested in Oracle RAC.

IBM's p5 595 benchmark results: 3,210,540 tpmC, $5.19/tpmC.
Total 3-year system cost: $16.7m
Oracle/HP's Integrity rx5670 benchmark results: 1,184,893 tpmC, $5.52/tpmC
Total 3-year system cost: $6.5m

Even though both solutions are 64 processors, this can be deceiving. The HP benchmark is underpowered vs. the IBM benchmark in terms of cores, GHz, memory, cache, and spindles.

Let's even things up a bit before I get into differences. IBM's hardware is wonderful, IMHO, and the POWER5 rocks the Itanium2. So, let's put Oracle on an IBM POWER5 solution, say the p5 570.

A 4-way pSeries p5 570 is $94k USD on IBM's website.
The only TPC benchmark for the p5 570 lists ram at $108k for 32gb.

So:
16 x 4-way p5 570's with 8gb RAM and 72mb L3 cache each = $1.5m
64 x 32gb memory boards = $6.9m (2 terabytes RAM)
Subtotal: $8.4m
Less 47% Discount: $3.95m
Total: $4.45m for the CPU + Memory + Chassis.
Add another ~$500k for extras (Fibre channel HBAs, Interconnect, etc.)
Grand Total: $5m

That's $1.5m less than the $6.5m (discounted) for the p595.

So, assuming the same storage & client configuration as IBM's p595 benchmark, and maintenance on the p570 and p595 is a wash, all that's left is software -- Oracle+Redhat is $1.6m discounted, vs. AIX+DB2's $800k. So add $800k to the total.

That's still $800k cheaper than the p595 solution, with 128 GB more ram (2176 gb total) and double the L3 cache. The only open question is if the cluster would bring in similar TPCC figures as the SMP box. Hopefully the following analysis will convince you about HOW superior IBM's hardware is to HP/Intel's.

Now, let's look at the differences between the two ORIGINAL setups:
- Both had 64 processors. 1.9GHz POWER5 vs. 1.5 Ghz Itanium2.
- The POWER5 is dual core and hyper-threaded, so can execute 4 threads simultaneously.
- The Itanium is 1 core and not hyperthreaded.
- The POWER5 has 96kb L1 cache and 1.92MB L2 cache. The Itanium2 has 32kb L1 cache and 256kb L2 cache. That's 3x L1, and 87% more L2.
- IBM had OVER THREE TIMES the number of disk spindles - 6,400 x 36 gig Ultra320 hard drives vs. 2,000 (mix of 18gb and 36gb) in the HP solution. That's 240 terabytes (well, 120, assuming half are RAID 1 spares), folks, for a 24 terabyte database.
- IBM had 83% more L3 cache (36 mb/proc vs. 6 mb/proc). That's 2.3 GB of L3 cache, if you were counting.
- IBM had 2 TB of RAM, which is 62.5% higher than HP's 768 GB.

Now, my p570 solution is close to even with the above (which is, remember, $800k less), but with the following improvements:
- 128 GB more ram (2176 GB)
- Double the L3 cache (76 MB / proc), which is around 4.8 GB of L3.

Given all of this, especially that the POWER5's are dual core HT, I think there's a reasonable chance Oracle RAC would sing. But this is all back-of-the-blog calculations, so, YMMV.

Of course these numbers all belong in "green giant" land. L3 cache in the GB and memory in the TB, and while we're at it, disk arrays with thousands of spindles, only 10% utilized, that can aggregately transfer (conservatively) around 10 GB/sec (more if you had more FC cards & switches)? Or how about a cluster with 8 GigE interconnects, giving an ability to transfer around 1 GB/sec across the cluster nodes? Monster truck madness!

Posted by stu at 11:29 PM

iPods seen in Redmond

This article is too funny, suggesting that iPod use is frowned upon at Microsoft, in favour of PlaysForSure WMA players.

This is a no-brainer, IMHO, though I find it hard to believe some of the numbers in the story. And I doubt Ballmer & Gates are sending memos out about it. Certain pro-Microsoft bloggers are denying or flat out blasting the article as b.s.

Perhaps parts of it are. But are those quotes and emails exchanged falsified? I doubt it.

In particular, this email exchange rings true...

Dave Fester, general manager of the Windows Digital Media division, ...: "I sure hope Microsoft employees are not buying iPods. We have great alternatives. Check out http://experiencemore."

Fifteen minutes later, the manager responded: "I don't know what I was thinking. I'm sure that Microsoft employees are not buying iPods, or Macs or PlayStations."

I have a friend that recently joined Microsoft after coming from the J2EE side of things, and he's amazed at the insular thinking. Even Google use is frowned upon!

I have a lot of respect for Microsoft and their people. I use their products, though mainly on the Mac, and I think .NET is the best developer platform they've ever had. But if you scratch the surface, it's been clear that Microsoft's cultural goal these past few years, since the anti-trust case, is to break out of their insular mode of thinking -- one that favours economic lock-in as their main competitive weapon. And they've had some successes here -- the Indigo / Web Services "Interoperability" mantra, the standardization of the CLI and C#, etc.

But they've also had significant failures. I think the WMA / PlaysForSure initiative is one example of that -- on one hand, it promotes hardware interop, on the other hand it ensures Microsoft's lock on digital media. It's a faustian bargain. Going with WMA players is like getting locked into only using GM cars with vinyl interiors and unusable dashboard layouts. With the iPod I'm locked into a BMW Z8. Pretty obvious choice.

Posted by stu at 10:35 AM

February 01, 2005

Building the new database, pt 1

Sometimes I just don't have time to keep up with the pace of conversation in the blogosphere. Perhaps because most of the members are pro-am pundits or journalists they can pull it off :-)

Anyway, related to this, I have a few thoughts brewing on that database debate that Adam Bosworth kicked off a few weeks ago, about how database vendors are providing less of what customers want, and open source could fill the gap. I also caught the radio show where Bosworth & co suggest there should be an easier way to do it than how we do it today.

Here's the nutshell, speaking as an Oracle DBA and one-time object database nerd. It really is hard. It will be easier, but the baseline of knowledge on how databases actually work is so _low_ out there, it's going to take a while. And in terms of specific features - dynamic partitioning and modern indexing, vendors like Oracle *are* providing these things, and they're not tremendoulsy hard to use, it's just that people don't bloody spend the time to learn them.

There's a cultural problem in the database community at work here -- there is too much emphasis on "operations" and not enough on "development" and "play". AskTom.oracle.com is probably the best example of a "DBA playground" , in terms of the attitude of information sharing and trying out ideas -- and is quite inspiring as to what one can do, very productively, with modern databases.

There's also confusion in basic assumptions of how one achieves scalability and reliability. If one's interested in this space, read (or re-read) In Search of Clusters for a feel of how this idea has evolved. There are many biases and perceptual challenges here. For example, Adam's use of the word "partitioning" already hints of a bias towards a particular style of parallelism (shared nothing), something that may be more applicable to Google's case than Federal Express' case. Few cluster architectures are "general purpose" to fit all cases (though Oracle argues that shared-disk and RAC are general purpose 'enough').

As for things like "dynamic schema", I am curious. Object databases like Gemstone provided this 10 years ago, and some companies , particularly Utilities and Container shipping companies, use schema evolution to great effect in their billling, routing, or trouble ticketing systems. But it wasn't enough for OODB's to catch on. Today, it's not a completely solved problem, but it's something that , for example, Oracle is working hard on. Every release they add new maintenance features that allow schema evolution without downtime -- first index rebuilding, then partition swapping, and now complete online table re-organization -- only with a quick table lock at the beginning and end of the operation. There's a whole discussion here about where should abstraction begin & end that I could get into (particularly about people that insist on building an abstract layer on top of their relational databases, which are already, guess what, an abstract layer on top of a filesystem).

Adam suggests that if these features do exist , vendors aren't explaining them or pushing them well enough. That may be true, but there's a deeper cause, I think. Generally I *do not* see these kinds of requests from most customers. They're having a hard enough time with 'static' requirements and techniques. Dynamic ones are too scary. Only the sophisticated customers, driven by deeply technical people, ask for these kinds of features. (These are the people one dreams of working for :)

Does Oracle listen to these people? Absolutely. The engineers know this stuff matters. But can they sell it in a marketing deck? It's a different audience. Perhaps that's why we don't hear about this stuff.

I'll expand on this in future.

Posted by stu at 11:03 AM

Random quickies

World of Warcraft is possibly the most addictive game created. Apple's new Powerbooks have 128mb video memory, which is tempting me to upgrade so I can get just that extra bit of texture detail...

I submitted (with a collegue) a presentation to JavaOne 2005. It will be on "advanced SOA" (whatever that means), particularly focused on legacy systems integration. It may show up on dev2dev this Summer as well. Fingers crossed!

I've been doing a lot of reading on "lean development" and "lean manufacturing", something I got into after reading Mary Poppendieck's book, followed by Michael Kennedy's book on Toyota's product dev process. The latter is as much of an eye opener has Goldratt's "The Goal" was years ago. I'm particularly reflecting on how this relates to the IT trends that I'm most enamoured with.. web services and agile methods.

Posted by stu at 10:46 AM