The benchmark

Our client application that fires off SQL requests is called DBconn, written in VB.NET. As I am no .NET expert, DBconn was written by one of my best students, Jo Neve.

DBconn is similar to AnandTech's SQL Loader, with a few differences. DBconn increases the workload progressively by augmenting the concurrency level. In other words, the client simulates that more and more users request data from the database system.




You can see the simplified interface of DBconn above. DBconn can also connect to different databases, and at the moment, DB2, MySQL and MS SQL server are supported. The precision of the tests can be increased in two ways. We can specify the number of repetitions of one test, and the total number of requests. A request can be described as a "package" of SQL statements sent to the Database. Every request is done by one thread.

The databases are not accessed via ODBC, but by the following drivers:
  • Microsoft SQL server driver (for MS SQL testing, to be discussed later)
  • IBM beta DB2 driver, .NET data provider (IBM.Data.DB2.dll 15/06/2004)
  • MYSQL beta4 byteFX driver (ByteFX.MySqlClient.dll 15/06/2004)
When you start so many threads, it is easy to get wrong results. Here is a small excerpt of the original code:



First, we used this code for making threads. The "join" method in this VB.Net code should normally wait until the last thread is finished. However, we found out by experiment that sometimes previous threads are still running. To avoid this, a special method in DBconn checks if all threads are indeed done before firing off a new load of threads.

The application also performs randomly in two ways: variables in SQL statements are randomized to avoid getting the same results over and over again. Queries are also called in a randomized order.

DBconn proved to be pretty accurate and results were repeatable. After weeks of tuning the application, we measured an error margin of +/- 2% to 3% between runs in DB2 8.1.3 and MS SQL server 2000.

The database was about 1 GB and has been extracted out of a database of about 7 GB of data. We cannot go into much detail, but the database is the backend of an e-commerce site, which provides a vast number of products from many suppliers. Extensive descriptions of products exist in the form of articles and newsflashes about the latest developments, so the database is smaller, but similar to Anandtech with its news and articles.

The following is a typical and very common SQL statement in DBconn:
SELECT table.x ..... table.z,  function(table.y)
			FROM table3
				LEFT JOIN othertable ON matching keys
				LEFT JOIN yetanothertable ON matching keys

			WHERE othertable.y IN condition AND condition1 AND condition2
			GROUP BY table.xyz
			ORDER BY othertable.zyx;

There are queries to request the newspage, to request an overview of certain category of products ordered in different ways, and so on. The mix of queries is based on the real world use of the database.

The scope of this test 64 bit Software Experiences...
Comments Locked

46 Comments

View All Comments

  • Decoder - Friday, December 3, 2004 - link

    davesbeer: "MS is a joke".

    You don't know jack about enterprise IT. Mostly of the financial services industry (FSI) companies run on both UNIX and Windows. Some FSI companies have standardized on .NET and SQL Server. I know this because i work in this industry. MS is no joke. MS.NET is no joke and i can assure you MS SQL Server 2005 is no joke. $ for $, MS products deliver more value and ease of use/development/admin then anything else out there. x86-64 will help MS win over some of the 64-bit enterprise computing deals as well. MS is in the best position ever.
  • davesbeer - Friday, December 3, 2004 - link

    I had great faith in Anandtech... until this article... not the hardware aspect but the software aspect...
    I never see MySql in competition... MS is a joke... known for cheap but not reliable or scalable.. DB2 is the only competition to Oracle but it is not the same database on differing platforms therefor has huge problems for customers.. Only Oracle allows you to move from one platform to another with minimal changes... Oracle is the leader in the DB market.. Gartner includes NON relational database in IBM's numbers which inflates them. Oracle commands about 70% in the Unix space and quite frankly is retaking significant ground in the Windows space with the low cost SE1 DB options.. Interesting to note that IBM benches its hardware with Oracle and not DB2..... The only thing software correct was the fact that Linux is extremely important to all the vendors and becoming more important to corporations...
  • Puppetman - Friday, December 3, 2004 - link

    #32 - Oracle prohibits you from posting benchmarks in their licensing agreement that you have to sign to get a copy of the software, I believe.

    I guess this is partly because it's so complicated to set up (MySQL is easier, but tuning is still an issue).

    I would have liked to have seen Postgres 7 and 8 tested. PostgresQL has the features of Oracle, and 8.0 has some pretty impressive performance numbers (the optimizer seems to be much better than the 7.4 optimizer, in my limited tests).

    David
  • Puppetman - Friday, December 3, 2004 - link

    They used a 32-bit version of MySQL 3.23, when a 64-bit version of 4.0 or 4.1 are available.

    No statement as to the storage engine used in MySQL (ISAM, MyISAM, InnoDB, BDB, etc), but all the big sites using MySQL (Google, Yahoo, etc) use the InnoDB engine, as it provides ACID transactions, tablespaces, foreign keys, etc.

    These tests are like testing a Pentium 4 3.4ghz EE CPU with Windows 98.

  • mbhame - Friday, December 3, 2004 - link

    Would've been nice to see some Oracle and SQL Server benches!
  • lindy - Friday, December 3, 2004 - link

    Our people soft environment consists of a application/web server running on Windows 2000 up front, with a SUN UNIX server running Oracle on the back end. In Nov-Dec the database server is busy…review/pay raise time of the year. The rest of the year it hums along.

    We have mostly two tier applications, WEB or Application up front on a server, database in the back on a server. However lots of turn key solutions like our Crystal Reports server and our Remedy server are an application on top of MS SQL….so essentially database servers.

    Exchange is a beast, every user hits our single Exchange 2003 server….1600+ users with a total 300+ gigs of email. You are right it’s basically a database server with the Exchange application sitting on top of it…..there is no way to separate it. Exchange 2003 would be a great test for you as there are lots of load simulators for it out there that can simulate many users pounding it.

    Why use a NAS when you have a SAN? Our 2 big Windows storage server 2003 file servers use a SAN for their 2 terabytes of data. These servers are backed up over fiber to a tape silo attached to the SAN. It’s about the fastest backup solution out there today. To your point the data on those file servers are slowly moving to a sharepoint solution which is a WEB server up front, and a big MS SQL database in the back….a pretty big paradigm shift.

    Anyhow good article, and happy holidays!!!
  • tygrus - Friday, December 3, 2004 - link

    What was the MySQL scalling like with the Opterons?

    Other OS's, other DBMS, MS Server 2003, MS SQL ?
    Nocona ?
    4-way intel vs 4-way AMD ?

    While it's nice to isolate the CPU performance, I would like to see some more variety and real life tests for the next edition. Part of a DB server is the IO handling and disk sub-system. Try to set them up with same (best) SCSI drives (SCSI RAID card ? on-board, OEM best or after market?). A few more serach, report, maintenance and data mining tasks would be nice. Capacity and expansion options (and cost) for more disks and backup.

    The other thing is that less CPU % usage for a given workload will reduce latency for potentially greater productivity. You don't want a DB server running at >50% for most of the time for speed, reliability, transaction growth, DB growth, emergency capacity. If it was <50% then failure of a CPU or it's associated memory (for Opterons) then the server ccould be run without it. I'm not saying that the system would be limited by disk IO to have that CPU <50% but that the system as a whole would be running at half its peek.

  • Scali - Friday, December 3, 2004 - link

    This is nice, but I still miss a few configurations that I would be interested in... For starters, Xeons running in 64 bit mode... And I also wonder how Windows would perform. Windows may scale quite differently from 1 to 4 or more CPUs, and HyperThreading may have a different impact aswell (especially with Windows XP or 2003, which have special scheduling strategies for HyperThreading).
    I hope that these will be covered in future benchmarks. They will put these results in a new perspective.
  • Bonebardier - Friday, December 3, 2004 - link

    I know, why don't I give my posts more thought - sorry Anand, I got my Tyan model numbers mixed up! The board used does of course show Opteron off to its best.

    Here's my sign!
  • Bonebardier - Friday, December 3, 2004 - link

    Yet another AMD vs. Intel review that handicaps the AMD contender unduly - why was the Opteron platform equipped with a K8W, when a K8S Pro would have provided double the memory bandwidth, or have I answered my own question?

    I'm looking at building an Opteron based server and would never dream of providing it with only a single bank of dual-channel RAM shared between the two, certainly not when a board is available that allows each processor to have it's own bank of DC RAM, which can be shared with the other processor if needed. Database apps are precisely the type of app that would benefit from this.

    Come on Anand - give your articles the thought they deserve, unless this one was just an Intel Nocona advert......

Log in

Don't have an account? Sign up now