Recently IBM published a new TPC-C benchmark and to make a point took out a series of full page ads to tell the world about it.

The result is 1.2 million of TPC-C transactions per minute. This is by no means the fastest TPC-C performance. The fastest TPC-C result so far is 5 times better i.e. about 6 million transactions per minute and it is also posted by DB2. So, what is so great about a this benchmark result? The important point here is that this result was achieved on an x86-64 PC server i.e. the same class of hardware that you are likely to run DB2 Express-C on. Before anyone gets too excited, this benchmark was not done with DB2 Express-C; DB2 Enterprise Edition for Linux was the database server used for this benchmark. However, you have heard me say time and time again that DB2 Express-C is the same code base as DB2 Enterprise. As a matter of fact, from code point of view these two editions are not simply similar, they are identical. SO, does that mean that you could just use free DB2 Express-C on a machine like the one that was used for this benchmark and you too woudl be able to achieve the same results? Well, the answer is “NO”. Why not? Well, take a look at the configuration that was used for this benchmark and you will quickly see that a huge amount of hardware resource went in to this configuration. And look at the prices to understand what it takes to pull of a benchmark like that. The cost of disk storage for the server alone was $1.4 million. Can you hook up DB2 Express-C to the exact same storage configuration? Absolutely! You just need to have spare $1.4 million. Once you find the money and get the disk subsystems in DB2 Express-C will do the job. This is different from other “Express” databases like Microsoft SQL Server Express or Oracle XE which are limited to 4GB of user data. Remember, DB2 Express-C has no limits on how much data it can manage.

But, would this be a wise use of your hard earned money? The answer is “NO”. The reason the storage is so much money is not because this much disk capacity is need to hold the data. The real reason is to provide the fastest pipe to the data on disk possible, and the most popular technique to achieve that is to  have as many disk spindles as you can. Notice that the system used in this benchmark employs close to 2,000 individual drives. That is one wide data highway. So, with DB2 Express-C you can create this wide a pipe to your data on disk, but will you be able to load this pipe with data? This is where server power comes in to play. Take a look at the price of the database server. It is a touch over $300K. $224K of that went to pay for for 32 16GB memory modules (2x8GB DIMMs) i.e. 512GB of memory. Why so much? Well, you get good performance by having as much data as possible in bufferpools and having lots of memory for sorts and other operations so as to avoid going to disk. The free DB2 Express-C can utilize 2GB of that memory. The rest will sit unused. DB2 Express-C with subscription would utilize 4GB of that memory. But it would still leave 31 DIMM pares unused i.e. you would be spending $217K ($6,999 * 31) for memory that DB2 Express-C would never use. The same can be said about processors. Free DB2 Express-C can take advantage of 2 processor cores and if you get a subscription DB2 Express-C will take advantage of up to 4 processor cores.

Could this type of a result be achieved with DB2 Express-C? Even a very casual observation of the TPC-C disclosure report will reveal that this level of performance requires compute resources that are out reach of for most of us. At the same time, 1.2 million transactions per minute is not the volume of database activity most people contemplate being able to support. IBM and othe equipment vendors do these benchmarks to showcase technoloical advantages of their solutions. The best take away from this and other TPC benchmarks is not that DB2 runnign on a x86-64 server can process 1.2 million transactions. Indeed, most of use will never need this leel of performance nor are we going to be able to afford the resources to make it happen. However, this benchmark clearly illustrates that DB2 technology can deliver the horsepower that even the most demnading applcaitions will need and it can do it like no other database out there. So, if you are considering a database for your application, DB2 Express-C is a good starting point. Not only is it low risk because you can start without spening any money. But you can also be sure that as your performance apetite grows, DB2 Express-C will not leave you hungry for more.

Tagged with →