Slashdot Mirror


First "Real" Benchmark for PostgreSQL

anticlimate writes "A new benchmark published on SPEC shows PostgreSQL's performance approaching that of Oracle's and surpassing or on par with MySQL (however the test-hardwares of the other DB systems are somewhat different). The test was put together by PostgreSQL's core developers working at Sun. They certainly are not unbiased, but this is the first 'real' benchmark with PostgreSQL — according to Josh Berkus's blog. The main difference compared to earlier benchmarks (and anecdotes) seems to be the tuning of PostgreSQL."

11 of 275 comments (clear)

  1. I do not think it means what you think it means. by Control+Group · · Score: 5, Insightful

    however the test-hardwares of the other DB systems are somewhat different

    Which makes the results pretty much useless. But, being the intrepid slashdotter I am, I went ahead and R'ed the FA anyway, in case I could glean some useful information from it.

    Which revealed that the linked article doesn't actually contain any information whatsoever about Oracle* or MySQL, much less benchmarks on named hardware.

    So...what am I supposed to get out of this, again? Or is this just supposed to be some kind of PostgreSQL love-in, so I should take my wet blanket elsewhere?

    *Well, the second link contains someone claiming that Oracle is only 15% faster...but without providing any actual data.

    --

    Reality has a conservative bias: it conserves mass, energy, momentum...
  2. Bad firehose! by greg1104 · · Score: 5, Informative

    Why this emaciated post made it while mine didn't I'll never know...here's how I submitted this story:
     
    The current version of PostgreSQL now has its first real benchmark, a SPECjAppServer2004 submission from Sun Microsystems. The results required substantial tuning of many performance-related PostgreSQL parameters, some of which are set to extremely low values in the default configuration — a known issue that contributes to why many untuned PostgreSQL installations appear sluggish compared to its rivals. The speed result is close but slightly faster than an earlier Sun submission using MySQL 5 (with enough hardware differences to make a direct comparison of those results unfair), and comes close to keeping up with Oracle on similarly priced hardware — but with a large software savings. Having a published result on the level playing field of an industry-standard benchmark like SPECjAppServer2004, with documentation on all the tuning required to reach that performance level, should make PostgreSQL an easier sell to corporate customers who are wary of adopting open-source applications for their critical databases.

    1. Re:Bad firehose! by MrNaz · · Score: 5, Insightful

      I like yours better. The Slashdot editors need to have their balls cut off if they think the post that beat your onto the front page is better. Feel free to mod me down any time for bitching about this, but seriously, this post is SO much better than the one that made it.

      --
      I hate printers.
  3. Re:on the playground... by CaseCrash · · Score: 5, Funny

    boys use mysql men use PostgreSQL, and _____ use MSSQL. and people who like to collect a paycheck use MSSQL.
    --
    No, that link you posted to a web comic we've all seen a hundred times is not "obligatory."
  4. Re:I do not think it means what you think it means by KillerCow · · Score: 5, Informative

    I think that somebody sent the wrong link and (surprise!) the editors didn't even follow it to check.

    Here's a more useful one: All SPEC jAppServer2004 Results Published by SPEC

    The benchmarks aren't standardized enough for any useful comparison. The hardware and configurations vary in almost every one.

  5. Good, but it can be improved. by khasim · · Score: 5, Interesting

    Get people from each group, give them the requirements and 5 different dollar amounts.

    Let each team setup their systems how ever they want at each price point. Some will go with clustered servers. Some will go a single monster server. They know their products best so they'll be the ones best suited to choosing the configuration.

    Then run the benchmarks. And keep hammering on them until AFTER the next patch release.

    Yeah, it might run fast, but still be a bitch to patch/upgrade.

    At $5,000 you might find that a cluster of MySQL boxes beats everything.

    At $10,000 maybe something else is best.

    $25,000

    $50,000

    $100,000

    etc.

    And finally, break it. Break it bad. What happens when something goes wrong? Oracle might cost a lot, but if they can come through with your data they might just be worth it.

    If nothing else, you'll get the "best practices" nicely demonstrated by each group. :)

    1. Re:Good, but it can be improved. by suv4x4 · · Score: 5, Funny

      Get people from each group, give them the requirements and 5 different dollar amounts.
      Let each team setup their systems how ever they want at each price point. Some will go with clustered servers. Some will go a single monster server. They know their products best so they'll be the ones best suited to choosing the configuration.


      We gave each team $10000 and told them to build the best hardware and db setup they can:

      ** PostgreSQL got a small IBM Blade quad machine redundant setup:
      "We're relying on standard industry solutions and reliability."

      ** MySQL clustered 4 PlayStation3 machines and wasted the rest on booze and women:
      "We're practical, plus we know what is money best spent on!".

      ** Oracle purchased a 1200 square foot datacenter and installed a megacluster of 8132 quad-Xeon 64GB RAM 4TB disk machines. With $10'000...?!
      "We... uhmm... we hit a great bargain, guys! You wouldn't believe it, but it's true!"

  6. Re:on the playground... by morgan_greywolf · · Score: 5, Informative

    DB2? It's only useable on large mainframes (big iron, so to speak) from what I understand.


    Um, no. DB2 these days runs on most major UNIX variants (HP-UX, Solaris, AIX, IRIX, etc.), Linux and Windows. It's used quite often, in fact. Most Enovia/VPM installations use DB2 backends, for instance. Modern versions use XML along with regular relational database stores and are very, very up-to-date technology-wise. Very scalable.

  7. Re:Mod parent way up! by Doctor+Memory · · Score: 5, Interesting

    Inserting 20 million rows, all simple inserts, only one primary key (int) with autoincrement for mysql and a sequence for postgres:
    Avg Mysql time per 1000 inserts: 3 seconds
    Avg Postgres time per 1000 inserts: 15 seconds (and gets worse over time) OK, now do a seven-table join, including a self-join with a correlated subquery (MySQL does those now, right?). I think everybody knows by now that MySQL is pretty much untouchable as long as all you're doing is simple single-table stuff. Kind of like comparing a pickup truck to a moving van: if all you're doing is moving a couple of boxes around, then the pickup kicks. But when you need to move serious loads, then it's the pickup that gets to sit by the curb...
    --
    Just junk food for thought...
  8. Re:Mod parent way up! by jaredmauch · · Score: 5, Interesting
    AC, sorry, but I have a postgres install working where I get 70k inserts/second or more with a single index on the table during the day. The first insert of course is faster as the index doesn't exist yet. I'm not sure what you're doing, but I can tell you that I have tuned postgres by increasing some simple parameters. If you're using some Linux package, you're likely not seeing the benefits that are possible by stuff like changing the block size parameter in the source. Yes, it's kinda lame you have to do this, but at the same time, it's not too unreasonable. I'd like it if I could set this larger.

    This is on 'decent' hardware running Solaris 10 (amd64). Obviously you need to tweak stuff like wal size, checkpoints, etc.. But getting this type of performance is not hard to do. I can scan an hours worth of data in a short amount of time. Each one of these 'hourly' tables contains roughly 30-32M rows. this is nothing to sneeze at from what I can tell. I haven't had a reason to re-evaluate mysql to see if there are enough tweaks to make it perform similarly, but if you're getting the crappy insert rate that you're talking about, you clearly need to change something as you're doing it wrong if you truly care about performance. E-Mail me if you're interested in my postgresql config files. I'm happy to share to minimize the FUD out there.

  9. I once did benchmarking by Stinking+Pig · · Score: 5, Interesting

    I worked for a company whose product ran on MS-SQL, PostgreSQL, and Oracle. Should I explain why we didn't support MySQL or not? It'll draw fanboys either way. I used the same server, reinstalled the OS (Red Hat Enterprise 3 or Windows 2000) and database between each test, and rebuilt the application server to be extra sure.

    Since it was more difficult to write Oracle-compliant SQL and we didn't have a lot of Oracle customers, the developers didn't care to spend time on it, and our stuff ran about 20 percent slower there. That's after a lot of tuning time, it was 50% slower on a default install. Oracle 9 took two days to install and tune, plus another two days of preparation. I was particularly underwhelmed that I had to deal with stupid errors like tarballs that extracted onto themselves and assumptions about the shell being used. At the time, Oracle was a very Solaris-like experience; user-unfriendly to the extreme.

    Postgresql 7 ran great; it was neck and neck with MS-SQL in all tests, after proper tuning, and 30 percent slower on a default install. Postgres took half a day to install and tune, but it took me a week and conversation with the postgres mailing lists to find out what needed tuning. Still, we were able to put together a document that took users from bare metal to RHEL+Postgres in four hours if they had all their media handy.

    Microsoft SQL Server 2000 ran great with no tuning at all, and took fifteen minutes to install. It also cost as much as paying me to do the entire set of tests. OS installation/patching times and tested workloads were the same for all three tests.

    YMMV.

    --
    "Nothing was broken, and it's been fixed." -- Jon Carroll