Slashdot Mirror


Open Source Database Clusters?

grugruto asks: "A lot of open source solutions are available to scale web sites with clusters but what about databases? I can't afford an Oracle RAC license but can I have something more reliable and fault tolerant than my single Postgres box? I have seen this recent article that looks promising for open source solutions. Do anyone have experiences with clusters of MySQL , Postgres-R, C-JDBC or other solutions? How does it compare to commercial products?"

14 of 350 comments (clear)

  1. transactionality is hard by solarisguy · · Score: 5, Insightful

    For what it's worth, the commercial solutions are hard to setup, unstable and terribly difficult to maintain, and this is after a small fortune has been invested in making them work. Not to knock the open source solution, but it's hard to beleive that something that is infrequently used and difficult to understand will be truly production quality if you want to use it for money.

    1. Re:transactionality is hard by sys$manager · · Score: 4, Insightful

      Oracle 9i RAC running on Veritas Foundation Suite HA+ Database Edition is a snap. Parallel server in 8 was hard to set up and unstable though.

    2. Re:transactionality is hard by Rorschach1 · · Score: 4, Insightful

      I never set up a pre-9i cluster on Windows, but I ran Parallel Server in 7.1 on OpenVMS and it worked great. Of course, OpenVMS has had real clustering for a long time - Windows still isn't anywhere near where OpenVMS was 20 years ago.

    3. Re:transactionality is hard by sys$manager · · Score: 3, Insightful

      Nothing will ever touch VMS clustering, it's kind of sad that 20 year old technology is so much more stable than modern technology. I mean VMS has only advanced two major versions in ten years.

  2. MySQL Replication by infernalC · · Score: 4, Insightful

    MySQL has very nice replication functionality, and, in certain circumstances, you can even set up replication rings. It is somewhat flexible about the topology you choose to use, so pick the one best for your application. Load balance ala DNS and you're in business.

    1. Re:MySQL Replication by strobert · · Score: 3, Insightful

      sorry, maybe it is just me, but the whole "ARRGG IT AIN'T ACID" is a lot of hype to me. ACID boils down to transactions. plain and simple.

      And I have found in many applications it is easier to deal with transaction type data consistency at the app layer instead of the db one.

      knowing that a DB transaction is complete doesn't help you if for in order to move forward you have to have db ops done in mtuliple servers and/or a change happen with an external vendor.

      And generally some bad code/process will at some point munge your data in a similar way as if you had a db crash in the middle of a transaction.

      I have generally seen for most applciations you are better off just coding things to treat outside input (including data from a db) as evil until you
      have verified it and cope with the abnormalities.

      Yes there are exceptions, but ACID tends to be a knee jerk reaction, and most people realyl need to be askign themselves what it ACTUALLY buys them.

  3. -1:Troll by stratjakt · · Score: 4, Insightful

    Do anyone have experiences with clusters of MySQL , Postgres-R, C-JDBC or other solutions? How does it compare to commercial products?

    They don't compare to commercial products. I know it isn't what you want to hear, and there are hundreds of kids here to tell you different, but they just dont compare. Those kids database experience doesn't extend past an address book.

    Even if you manage to get them to technically keep up, transaction wise, to Oracle or SQL Server, the ACID enforcement isn't there, the syntaxes are kludgy. Gack.

    My company ships products with SQL Server or Oracle as the back end. I've tried to put together an OSS solution so I could impress the big boss with millions of bucks of saved license fees. They just aren't anywhere close IMO.

    Run a SQL Server farm on the back end if you cant afford an Oracle license. Don't be an OSS idealogue in the business world, you end up unemployed.

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:-1:Troll by venom600 · · Score: 5, Insightful

      ACID enforcement isn't there
      Actually ACID compliance is getting pretty darn good in databases like MySQL. Care to elaborate about what ACID compliance issues you have?

      Don't be an OSS idealogue in the business world, you end up unemployed.
      Actually, in our flailing economy 'OSS idealogues' as you call them are making a lot of head-way. OSS now has a viable alternative to *just about* any commercial enterprise software out there.

    2. Re:-1:Troll by venom600 · · Score: 4, Insightful

      I realize that stuff has improved in the year since I've seriously looked at it, but I'm doubtful it's reached the level of Oracle or SQL Server.
      You should look again. MySQL, for example, has full transaction support with InnoDB table types.....AND it's pretty damn fast.

      Watch 404 messages from websites for telling clues - mysql always fails before apache.
      I'm sorry, but that doesn't seem like a very accurate way of measuring database reliability. One of the cool (and sometimes harmful) things about open databases is that there is no entry fee...meaning anybody and their brother can set up a MySQL server. This means that the number of ill-managed MySQL servers out there probably out-numbers Oracle or SQL Server installations (which, typically, have a somewhat knowledgeable admin behind them) by 10 to 1. A MySQL database managed by somebody who knows what they are doing will go head to head with Oracle or SQL Server installations which are also managed by someone who knows what they are doing.

    3. Re:-1:Troll by Kunta+Kinte · · Score: 4, Insightful
      Run a SQL Server farm on the back end if you cant afford an Oracle license. Don't be an OSS idealogue in the business world, you end up unemployed.

      And I would fire the IT guy who causes my company to spend $10,000 for SQL Server in a situation where the free MySQL or Postgres would do.

      Just focus on the right tool for the job. If the database is a simple one. If it is regularly backed up and your company can stand a small period of downtime, why on earth would you buy Oracle or MS SQL Server?

      This is not to say that MySQL is unreliable. I have *never* seen MySQL crash, or lose any of my data. So it would be silly of me to go with Oracle, just because everyone else is doing it.

      The right tool for the job people.

      --
      Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
    4. Re:-1:Troll by Lumpy · · Score: 3, Insightful

      They don't compare to commercial products. I know it isn't what you want to hear, and there are hundreds of kids here to tell you different, but they just dont compare. Those kids database experience doesn't extend past an address book.


      yeah, nobody would ever run a high traffic website on OSS database.....

      Anyone know of a high traffic website that uses per and OSS database servers in a cluster?

      Oh yeah.... this place

      --
      Do not look at laser with remaining good eye.
    5. Re:-1:Troll by stanwirth · · Score: 3, Insightful

      My main problem with PostgreSQL is the query optimiser. Oracle's query optimiser is definitely superior as Postgres occasionally comes up with some peculiar query plans.

      I had the same experience. You basically have to optimse large queries combined with joins and subselects on Postgresql yourself -- and often with Oracle, as well, if its for tables with > 1-10M records. ish. You might want to check out DB2. Awesome clustering -- IMHO more sophisticated and flexible than Oracle's. YMMV depending on the application, as always. Also, if it's a development environment, you can test DB2 and Oracle on linux boxen to your heart's content for the same price as PostGreSQL -- free .

      MySQL may be able to handle subselects, but it's still struggling with triggers and stored procedures.

  4. High Availability by mcdrewski42 · · Score: 5, Insightful


    HA is always crapshoot/tradeoff between cost and risk. Throw enough $ at the problem and you'll approach 100% availability.

    I know that 'more robust' is a nice thing to want, but you really need to think about what you really need. If it takes 15 minutes to switch over to a backup copy (using some magic RAID disk mirroring maybe?) and 15 minutes to restart the app and let it checkpoint it's way up to a decent operational speed again, is that good enough?

    If it takes an hour, how about that?

    How much time/heartache or money is it worth for you to have system downtime, and how much are you willing to expend to reduce it by 5, 15, 30 minutes?

    So, there's really a continuum of availabilty you have to pick your point in. At the low end, you have no backups and recreate everything from scratch. At the high end you use Vendor X's real clustering solution and 24x7 monitoring, then have zero downtime even in a disaster. Somewhere in the middle is you.

    Now I realise this an overtly commercial view of things, but if needs be replace money with effort and season to taste.

    --
    /* affect != effect */ void affect(int *thing,int effect) { *thing += effect; }
  5. PostgreSQL eRServer 1.0 + Backplane by pabos · · Score: 4, Insightful

    Two options I haven't seen anyone mention yet are PostgreSQL eRServer 1.0+ (see PostgreSQL news item "PostgreSQL now has working, tested, scalable replication!" from August 28, 2003 or a lengthier press posting "PostgreSQL, Inc. Releases Open Source Replication Version") and Backplane.

    eRServer has been in development for over two years, is used in production settings and is released under a BSD license (as with PostgreSQL). It uses a single master/multiple slave asynchronous replication scheme. There are cautions in the release that replication may be difficult to setup.

    Backplane seems to be particularly well-suited to clustering data quickly across a WAN. A quote may explain it better:

    The Backplane Open Source Database is a replicated, transactional, fault-tolerant relational database core. Currently supported on Linux and FreeBSD, Backplane is designed to run on a large number of small servers rather than a small number of large servers. With Backplane, it is possible to spread the database nodes widely, allowing database operations to work efficiently over WAN latencies while maintaining full transactional coherency across the entire replication group.
    Backplane's native quorum-based replication makes it easy to increase the database capacity (by simply adding a new node), re-synch a crashed server, or take down multiple nodes for maintenance (such as an entire co-location facility) - all without affecting the database availability.

    I haven't used either yet, but you may wish to give them a look.