Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Programming IT Technology

Open Source Database Underdogs 154

implex writes "Interactive Week had an article called "Data Underdogs" which they compare offerings of present Open Source Databases with present commercial offerings. In one part they mention ...On the other hand, MySQL developers now have a much-needed transaction management system: NuSphere last month made its Gemini transaction manager for MySQL available as open source code on mySQL.org, a site that the company recently launched. Complicating matters, though, is NuSphere's blood feud with MySQL AB, a Swedish company that runs a competing open source development site for MySQL code at www.mysql.com. No mention of the fact that MySQL AB actually created the product was interesting."
This discussion has been archived. No new comments can be posted.

Open Source Database Underdogs

Comments Filter:
  • by standards ( 461431 ) on Tuesday August 14, 2001 @08:53AM (#2114475)
    Instead of focusing in on the available solutions, the article simply spits out the idea that MySQL and Postgres are weak pretenders.

    The FACT is that these databases are excellent solutions to a large number for MOST database problems. Sure, like all DBMSs, they can always use more features. But I don't want my DBMS to turn into an uncontrolled monster like Oracle.

    For 99% of the applications out there, Postgres and mySQL fits the bill. If you're doing large scale distributed payroll using SAP, then I suggest you go with a big name...

    But if you're an average-sized business, Postgres is a full-featured solution today. It is an inexpensive, fully-capable solution.

    If you're into writing Oracle PL/SQL, a proprietary procedural extention to SQL, go with Oracle. (Note: PL/SQL doesn't work with Sybase or DB2 or anything else.) If you're into TransactSQL, another proprietary SQL extension, go with Sybase. Once you get into TransactSQL, you'll NEVER migrate out without expense. In fact, my shop, an Oracle shop, doesn't PERMIT developers to use the PL/SQL ewxtensions. We learned our lesson after migrating from proprietary MS-SQL-Server extensions to Oracle!

    And if you need a big company to support your 20,000 person payroll, go with IBM's DB2. Again, another fine DBMS.

    But for the average shop? Save your money and go with PostgreSQL.
    • >If you're into writing Oracle PL/SQL, a proprietary procedural extention to SQL, go with Oracle.

      Don't forget about PL/pgSQL [postgresql.org], the procedural language for Postgres. This was written with Oracle converts in mind ;)

    • It's just that Oracle perhaps doesn't provide you with the right tools to do the migration. If you look at the SQLserver documentation, it comes with full docs how to migrate Oracle stuff to T-SQL.

      Besides that: any databasevendor uses its own sql-dialect. Get over it. If you don't want to use the dialect, write a layer on top of it or use a layer on top of it (like ADO/OLE-DB on win32).

    • One problem with proprietary DBs is that their docs will steer you toward non-standard SQL even when standard SQL will work. For example, Oracle will teach you to use NVL and Sybase will teach ISNULL, when COALESCE works in both databases.

      The solution is to develop with PostgreSQL regardless of what your deployment DB will be. Their docs favor standard SQL. The code you develop will work with the proprietary DBs as well.

      • +++The solution is to develop with PostgreSQL regardless of what your deployment DB will be. Their docs favor standard SQL. The code you develop will work with the proprietary DBs as well.+++ Baloney. Their docs specificaly state they aren't SQL-92 compliant, and they don't try to be. Go ahead and create a cursor with updatable columns in Postgres, then come back and blabber on about "standard SQL."
        • If you actually read my post, you'll notice that I never claim that they implement all of SQL-92. I won't bother restating myself as the original post was quite clear.

          P.S. Cursors with updatable columns did not actually work in MSFT SQL 6 until some time long after the marketing literature claimed they did. With PostgreSQL, you can expect more accuracy as to what is/isn't implemented.

      • The solution is to develop with PostgreSQL regardless of what your deployment DB will be. Their docs favor standard SQL. The code you develop will work with the proprietary DBs as well.

        And besides that, you will (1) probably know why your code works and (2) not have to deal with next-version breakages anywhere near as often.

    • If you're doing large scale distributed payroll using SAP, then I suggest you go with a big name...

      Yeah, like the GPL [freshmeat.net]:ed SAP DB [sap.com] for example.


    • If your company refuses to allow PL/SQL procedures, most people would question your technical competence.

      What are you using for stored procedures? Java, C?

      Databases are not black-boxes, and if they are treated as such, whatever applications come out of it will not be optimal and will never be scalable.
  • Code forks... (Score:4, Insightful)

    by UncleOzzy ( 158525 ) on Tuesday August 14, 2001 @08:42AM (#2114890)

    What's the problem here? We've got and open source database that's being developed in two somewhat different directions by NuSphere and MySQL AB ... seems like in the end it'll lead to two different, but each (for their intended applications) excellent products. I just don't see a problem.

    Maybe I'm just being dense (first reply: "Yes, you're fscking dense!")

    • Re:Code forks... (Score:2, Insightful)

      What's the problem here? We've got and open source database that's being developed in two somewhat different directions by NuSphere and MySQL AB

      I think there is a subtle difference between merely forking someone's code and forking someone's code but passing it off as the original. Nu does not own that code, and Nu did not originate that code. Yet they put up a Web site which tries to pass itself off as the official source. And this has somehow led to a journalist being so confused as to call the original coding house "a competitor." Sure they compete, that's good. But it is more accurate to call MySQL AB the originator and Nu the competitor. Nu is the new kid on the block that just entered the market. The more they try to pass themselves off as the official source, the more they upset people in this community who know better. They're misrepresenting the situation, and that's not ethical.

      In slashdot's earlier article (a week or two previous), Nu's comment about "the GPL is not enforcable" doesn't exactly bode well either -- Nu is getting ready to do some seriously rogue shit, and I don't want to support that.

      • NuSphere is playing dirty. MySQL went GPL as a gesture of good faith, and NuSphere trampled all over it.

        It's a question of respect more than anything else. NuSphere is playing the fork game in as nasty a manner as possible.

    • Re:Code forks... (Score:2, Insightful)

      by dup_account ( 469516 )
      We all know that (needless) forking is really bad on a project. It makes more sense to have the base MySQL, and NuSphere stuff be add-ons/patches. At least until every gets together on what's going on.<p>
      I think that NuSphere tried (is still trying) to muscle in on MySQL and become THE MySQL company. I sort of see it like the Sybase/M$ thing. For a long time M$ just resold Sybase stuff. Then they decided they didn't need Sybase anymore so they dumped them and put their marketing behind M$ SQL Server. No hardly anyone reconizes that Sybase wrote the core of M$ SQL Server......<p>
      I think we all need to support MySQL AB as the original authors of MySQL. The people who risked their butts to bring it to us. I also think we should all tell NuSphere that they should be grateful to MySQL AB and learn to play nicely. (Unless they want to be view in the same negative light as M$)
  • It's been my experience that the only thing really holding the major open-source DBMSs back were exposure and solid transaction management. I hope that, by now at least, many DBAs have at least heard that there are alternatives to Oracle and SQL Server. As a programmer and database designer, I know I've been trying to keep my co-workers' and employer's eyes open to the possibility of having to use an open-source DBMS when the need arises.

    It seems to me that implementing MySQL doesn't seem any more difficult that getting an Oracle database built. Although, I must say I've gotten spoiled by the GUI that's available in Microsoft's SQL Server Enterprise Manager. It's damned nice.

    I guess the long and short of it is that it's good to have an alternative to Oracle, which is, in my opinion, overpriced for what it is. As long as products like MySQL keep getting better, they'll continue gaining ground as not just "alternatives" to pricey DBMSs, they'll become the DBMSs of choice.

    • I must say I've gotten spoiled by the GUI that's available in Microsoft's SQL Server Enterprise Manager. It's damned nice.

      I assume you've heard of/used phpmyAdmin [sourceforge.net], a PHP web application that reminds me alot of the interface to MSSQL Enterprise manager (though not as full featured, I'll admit). Anyway, it's something to check out if you're interested. Saves alot of time on testing and prototyping.

    • I must say I've gotten spoiled by the GUI that's available in Microsoft's SQL Server Enterprise Manager. It's damned nice.

      Is that the GUI that rewrites your query when you click "go"? Capitalising keywords is one thing, but rearranging the boolean terms in the WHERE clause, making non-trivial queries unrecognisable after they've been performed, is just obnoxious.

  • growing trend.. (Score:4, Insightful)

    by TechnoVooDooDaddy ( 470187 ) on Tuesday August 14, 2001 @09:09AM (#2118927) Homepage
    Actually, I've noticed a growing trend in the crowd of programmers I run with is not to care about the implementation platform.. SQL is SQL, and you don't do transactional based stuff on the platform anymore, you abstract away from that into your middleware, and do things the way you want to. In REAL LIFE programming, you often don't have the chance or opportunity to spec out what your back-end platforms are, you have to deal with what's given, or what's legacy at Company XYZ Inc. You also are often dictated a programming langauge for the project whether it be java, c, cobol, perl, python or whatever. The real value lies in being able to adjust to whatever the PROJECT calls for, and being able to implement on just about any platform you need with strong good design patterns. MySQL and Oracle both do exactly the same thing from my point of view, hold data in a relational format for storage and quick retrieval. Putting too much logic into the database only serves to slow things down in the long run. Nasa Switches from Oracle to MySQL [mysql.com] shows us why Oracle putting all those bells and whistles in their product may lead to a weakening of their marketshare ultimately. The fact is, bells and whistles cost memory and processor, and there's a balance between the two that Oracle seems to be blithly ignoring.
    • It's the RMC (Right Mouse Click) crowd. With MSSQL came RMC - backup, RMC - add data file, RMC - almost anything.

      Anyone can become a DBA, just like anyone with IIS can become a webmaster.. *cough*
    • Re:growing trend.. (Score:5, Insightful)

      by duffbeer703 ( 177751 ) on Tuesday August 14, 2001 @12:47PM (#2144603)
      SQL is not SQL

      There are four tiers to the SQL-92 standard, and even commercial RDBMS vendors to not conform to all of them.

      Oracle, Informix, DB2, MySQL all have different optimizers and differing concurrency schemes. Oracle does not lock a row for reading when another transaction is writing a row. Informix will perform table scans on certain queries where DB2 will not.

      This "growing trend" you are talking about must be coming from inexperienced programmers working on trivial or single-user applications. In REAL-LIFE the security of data and usability of the client are paramount.

      The fact that you would even say that MySQL and Oracle do the same thing displays your complete lack of knowledge regarding what modern commercial database products are capable of. Leaving all the programming logic in the hands of applications developers re-invents the wheel, escalating costs while introducing more bugs into the system.

      • wow, where have you been the past couple of years.. Ever hear of n-tiered development? Or actual projects for actual companies that happen to store data in completely disparate databases? How you do manage a transaction that includes RDB, MS SQL Server, and the provisioning hardware? Oracle's little transaction manager won't do it. So you stack a layer on top of that and do your transactions there. Prep the transaction first, then commit it to the database(s). MySQL and Oracle at that point do EXACTLY the same thing, only MySQL happens to do it a bit quicker.

        n-tiered architecture is used for exactly this purpose, to provide a layer of abstraction for both the data providers AND for the application.

        My application shouldn't care what dataproviders it's talking to, it just knows that it has an order for whatever.

        My database shouldn't care what transactions are happening, because my database is there to store & retrieve DATA.

        so we utilize a middleware that has the logic for managing those transactions. Works great, allows me to use whatever database the data is stored it, allows me to provide whatever App interface the users want to use, and allows me to write the transactional piece in a very modular, easy to interface with manner.

        Re-inventing the wheel? perhaps, but *shrug* it works great....

    • I don't think you can "abstract away transaction related stuff" from the RDBMS. Please correct me if I'm wrong; but I believe that you simply can not start with a RDBMS that does not support transactions; and slap a transaction processing middleware on top of it to instantly have a database application with transactions.

      The standard transactional interfaces that are increasingly becoming popular nowadays (like JTA) depend on the database supporting transactions; most likely in the form of an XA-conformant programming interface.
  • by Kraft ( 253059 ) on Tuesday August 14, 2001 @09:17AM (#2124838) Homepage

    But mirroring the success of Apache and Linux will be no small feat for the three most popular open source databases - InterBase, MySQL and PostgreSQL - which combined represent less than 3 percent of the market, according to even the most optimistic estimates of the suppliers themselves.

    Did this number strike anyone else as too low? This is the first time I have seen any percentages on OS DBs. Alright, 3%, but of what? Does this mean that less than 3% of all bytes stored in any database are stored in an OS DB? That may be, but I cannot believe that less than 3% of all databases running are OS.

    The thing is, when I started studying computer science, we only ever worked on mSQL boxes. My first job used Postgres and the second used mySQL. Anything I work on myself is mySQL. Granted these jobs have all been webrelated, but when you think about how many ISPs offer mySQL/Postgres preinstalled (not to mention linux distributions, if that counts), 3% seems rediculous.

    Well I suppose MS Access runs on one or two computers out there... that might raise the non-OS score.
    • Well, when people talk about market share it is usually by revenue, and given the low price of Open Source databases I'm actually surprised it's even as high as 3%.

      But 3% of revenue might actually add up to a fairly substantial proportion of installations.
    • "Market" is a word that refers to a place where things are bought and sold.

      When a product has 3% of a market that means that 3% of the total amount of money exchanged for that category of product is given in exchange for the product in question.

      Now, you may argue, with considerable justification, that market share is a meaningless metric of open-source software acceptance, but for the mass of humanity that isn't still living with their parents, markets are what put food on the table.

    • Think of how many VB-based desktop apps are out there - figure that probably 70-80% of them bundle some form of the Jet engine, and/or use Access locally. That's been spreading for *years* and if you count that, 3% of the market for MySQL, PostgreSQL and others doesn't sound too far out. Of 'web-related' databases, I'd figure MySQL and PostgreSQL are probably a lot higher - certainly in the double digits.
  • by Anonymous Coward
    Take a look at this [ibm.com] if you want to see php and MySQL working together. It shows you how to use two open source, cross-platform tools for creating a dynamic Web site.
  • I highly recommend SAP-DB, an open source database (GPL) with Oracle 7.3 compatibility mode and features. http://www.sapdb.org
  • Huh? (Score:2, Insightful)

    by Ulwarth ( 458420 )
    While I appreciate the sentiment of the article, it seems rife with misinformation. For example:

    "Another feature that NuSphere is adding to MySQL is replication..."

    Er, I'm pretty sure that's been in there for quite some time, through the master/slave system.

    "The language resembles Oracle's PL/SQL (Procedural Language/SQL), except that PL/pgSQL offers the use of functions only, not procedures. A function call always returns some result, while a procedure may execute certain operations without returning a result."

    Wow, that's certainly earth-shattering. Just discard the result. Cripes.

    "PostgreSQL, like MySQL, also doesn't provide any native replication capability."

    Maybe I misunderstand replication, but what's the matter with:

    $ pg_dump mydb | bzip2 > dump.bz2
    $ scp dump.bz2 newdb.host.com:
    $ ssh newdb.host.com "pg_create mydb; bunzip2 dump.bz2 | psql -e mydb"

    "But some Web businesses are finding that they can function perfectly well with open source databases."

    Yeah, I guess the features I like are speed, stability, ease of deployment, and excellent development tools. PostgreSQL and MySQL have all of this in spades; the commercial databases I've worked with usually seem clunky and contrived by comparisson.

  • Apachetoolbox [apachetoolbox.com]

    Apachetoolbox actually installs everything from the original sources. It supports apache, mysql, php, over 60 modules for apache. Opensource to.

  • I use Interbase and am always amazed at how little attention it gets compared to MySQL and PostgreSQL. It has a lot of the more advanced features people claim aren't available in open-source databases, e.g. the online backup capability the article went on about. It had transaction support from the get-go, supports stored procedures, and on and on.

    It baffles me that the author of the article could know about Interbase and yet seemingly not even look at it in the course of researching the article.

  • Focus on profits (Score:2, Interesting)

    by telbij ( 465356 )
    The article seems to claim OSS DBMSs aren't as succesful as commercial solutions. Unfortunately, it follows the typical capitalist ideal that something has to make money to be succesful.

    OSS flies in the face of American ideologies, and this is just another example of big corporations not seeing the value.

    Certainly Oracle is much more robust than MySQL right now, but I think the OSS ideology of trying to make the best product will eventually beat out the ideology of trying to squeeze as much money as possible. Technology will prove to be the end of traditional free-market theory, I think, because there is no longer a solid commodity with value. Things can be copied, so value has to be placed on the creators, not the product.

  • by micromoog ( 206608 ) on Tuesday August 14, 2001 @08:46AM (#2139298)
    The article mentions that the extreme complexity of database management systems is a barrier, which is true. There is one other thing the commercial vendors have that is a big challenge for the "underdog" OSS vendors: trust.

    Companies keep everything on database systems. Hundreds of geek-hours must go into the design of a database application for a company. Whatever system a company chooses, they must be reasonably sure the system will:

    • almost never fail
    • be supported by a stable company and
    • integrate well with other systems, into the future.
    A smaller price tag may be a good start to target smaller companies that don't rely heavily on database applications, but the reason Oracle can charge $15k/CPU for 9i Standard: the reputation is worth it.
    • One of the things that I like best about PostgreSQL is the fact that the developers are brutally honest about the software. The core PostgreSQL developers have always been quite frank about which parts of PostgreSQL were ready for production, and which parts were kludges, or were largely untested. The problem with commercial databases, even good ones like Oracle, is that the people who know where the rough edges are aren't talking about them. That sort of honesty goes a long way towards building my trust.

      PostgreSQL has an amazing featureset, especially considering its price. I think that fairly soon Oracle is going to wake up to the fact that the database is becoming a commodity market, and quite frankly, they aren't likely to be competively priced.

      • I don't think you're likely to find that happening on the commercial level. It was so long ago I don't even remember where I read it (though it's the sort of thing that a /. poster might say), but I once heard it said that acknowledging bugs is probably a great way to tick off your investors.

        "What, there's a flaw in your product?"
        "Yes, but we can fix it pretty easily -- have the bug fix out tomorrow..."

        Whereupon the non-technically-inclined investor writes the developer's comments as a sign of weakness and sells. I think that's also why commercial bug fix releases are such a big deal -- probably Microsoft's other reason for cramming all kinds of new features into their service packs.

        • I know I am not likely to find Tom Lane's (a PostgreSQL hacker) honesty from the vendors of commercial software. That's the whole point. How many times have you listened to the representative of one software firm or another talk about their new "features" only to find that when deployed in a real life scenario the new features fold like cheap card tables? I personally have seen it far too many times. Hiding these flaws may seem like a good idea to a marketing executive, but all this does is guarantee that I won't trust that company in the future.

          Honestly truly is the best policy, and that's part of the reason that I like PostgreSQL. The PostgreSQL core is quite frank about what parts of their software are ready for prime time, and which parts aren't. More importantly, by skimming the pgsql-hackers list I can see what's being worked on, and how far they have progressed. That way I can decide for myself what features will be ready for production by the time my new stuff is ready to roll.

          When it comes to trust, I would much prefer PostgreSQL's openness over the assurances of some faceless corporation that wants my upgrade fees so that they can have the revenues they need to keep Wall Street off their back.

    • by rakjr ( 18074 ) on Tuesday August 14, 2001 @09:32AM (#2157462)
      "extreme complexity of database management systems is a barrier," this can be taken two ways:

      It takes an 8 ton gorilla of a database system to get the job done.

      It takes alot to manage an 8 ton gorilla of a database system.

      I believe the first may be true depending upon the needs, but the second is a given. What has not been stated is that the more complex the database system is, the more likely there will be errors on the part of those implementing the system if they are not fully trained. In some ways, the difference is similiar to the difference between operating a truck verses operating a jet plane. Both are designed to get stuff from one place to another, but the number of controls on a jet plane and the amount of data being produced by various meters is considerable.

      People really need to weigh two parts of the issue.

      Does our task require a jet or will a truck suffice?

      Are we willing to pay for proven jet pilots, or is it safer to pay for an equal number of proven truckers. The key point here being "proven."

      To often I am seeing agencies who buy into the idea that the only "real" solution is the jet. This is a humorous thing to see when the jet is only used for trips across town...

  • Oracle experience (Score:4, Informative)

    by truthsearch ( 249536 ) on Tuesday August 14, 2001 @09:21AM (#2139454) Homepage Journal
    I only have experience (but lots of it) with Oracle and - unfortunately - SQL Server. Until SQL Server 6.5, I think it sucked compared to Oracle. But now they're more on level, although Oracle has always, and still does, handle huge data warehouses much better.

    That aside, I worked for years with a 4TB data warehouse for a major credit card company. It was Oracle (7?) on a Sun E10000 (22 processors, 1GB ram) and it was screaming. We barely used any "advanced" features that were unique to Oracle. But what impressed me was Oracle's support. They had an office a few miles away and would send DBAs over to help out. Our DBAs were excellent, but when it came to very low-level tweaking, these Oracle DBAs knew their stuff. They would mess around with the OS to keep it as efficient as possible. And if there was ever any kind of failure or error, they came over to check it out.

    Now granted, my company paid big bucks for the support, but at the moment that sort of support can't be found for an open source dbms. These were highly skilled experts in the database they supported. I realize (partly from the article) that the current goal of open source databases is to grow in the low-end market - smaller systems and such - and I'd bet they'd stand up to large warehouses. But one big advantage Oracle and DB2, and to a much lesser extend SQL Server, have is their support. You can have a highly skilled technician in your office very quickly if you need it, beyond the support of a consultant could provide. I'd like to see that kind of support in open-source companies. That's when I think they'll give closed-source databases a true run for their money... literally.
    • This is no doubt why Red Hat is getting into the DB game: So they can sell support for PostgreSQL.

      I worked in a smallish Sybase shop for a while (tiny I suppose in comparison to a major credit card company) and I remember our DBA running around tweaking this and tweaking that to get the DB to run more efficiently. What struck me is that we had maybe 6 or 7 logical DB's all on one machine with no single table exceeding a million rows -- and he spends all day tweaking? Why didn't the damn thing just sit there and run? Why the need for all the tweaks? Sybase exposed so much configuration detail that even a competent DBA is bound to shoot themselves in the foot once in a while. Seems to me a decent DB system should hide and deal with as much complexity on it's own as possible.
      • Why the need for all the tweaks?

        Job security.

        Seems to me a decent DB system should hide and deal with as much complexity on it's own as possible.

        From the software developer's perspective, I agree. From an admin perspective, the more customizations available, the better - just like in an OS.
      • Your DBA was running around tweaking all day because he was supporting a poorly designed application that was completely unoptimized.

        Because so many developers have a notion (prominently displayed in this story) that "SQL is SQL" many apps running on a database run horribly inefficient queries that bog the database down.

        Studies have consistently found that80-90% of database tuning needs to take place in the application. The database tuning portion mainly consists of tweaking memory and parallel query options.
    • 22 processors and 1 GB of RAM? that seems like an impossible configuration! are you sure you didn't mean 1GB on each system board for a total of 22 GB?
    • My experience from about 12 years ago. The Air Force mandated that Oracle would be the "standard" DB, because it was "portable". There was an on-base Oracle representative. Our project was working just fine using VAX/DBMS, but we figured we would call up the Oracle guy and get a quote. It was something like 40K, or about quadruple what we were paying for VAX/DBMS. We choose not to switch.

      Another time, myself and a friend were experimenting with Oracle on an AT&T 3B2 (also mandated by the Air Force as the "standard minicomputer"). It was slow as hell, but that may have been AT&T's fault. whilst creating a simple form, and trying to do something basic, like hit the function key to add a trigger to a field, the forms app would blow up. So we call the Oracle guy, who helpfully advises "Don't press that key". We were unimpressed with Oracle's tech support.
  • Two things.

    A lot of commercial apps have plugins for whatever DB you want to use. Once they wise up and provide plugins for DBs like RedHat DB, Postgres, MySQL and so on, we'll start to see higher market saturation.

    The second thing which will help is when we get more commercial apps ported to Linux.

    This is already happening. The product I use every day - SAP [sap.com] is available (commercially) for Linux. They support all the big DB vendors including Oracle, MSSQL (ok, not on Linux), Informix, DB2, and their own (open source) database SAPDB [sapdb.org].
    I'm doing my bit, my site runs on PHP/MySQL.

  • Versus OpSys (Score:5, Interesting)

    by Root Down ( 208740 ) on Tuesday August 14, 2001 @08:57AM (#2141590) Homepage
    "Databases are dramatically more complicated than any Web server or operating system technology."

    The above is a quote from senior marketing director Bob Shimp, from the article. I will give him the Web Server - which is not to say that it is not complex, but likely not as complex as a robust relational database. I cannot do the same for the OpSys. There is a dramatic difference in the levels of complexity between a monolithic single-user non-multitasking operating system (such as DOS) and a multiprocessing distributed parallel asymmetric (etc etc) OpSys. The quote is not grounded in any sort of evidence, and I have serious doubts as to whether the 'marketing director' would have ever encountered a kernel that did not come from a bag marked 'Orville Redenbocker'. It is simply misguided and misinformed, and the general intent seems to be in undermining confidence in Open Source DBs. (... furthering the myth that open source is 'unreliable'.) Threatened? He likely should be.

    I'd like to see an object data model (ODM) open source database come into the scene. Now that would cause a ruckus, challenging both the bottom line and validity of the relational model!
    • Re:Versus OpSys (Score:3, Interesting)

      by micromoog ( 206608 )
      I'd like to see an object data model (ODM) open source database come into the scene. Now that would cause a ruckus, challenging both the bottom line and validity of the relational model!

      Yeah, all the companies would immediately say "Let's base the future of our business on new and untested technology! Better yet, let's buy it from an unknown vendor!"

      Please. The reason relational databases are still very much the dominant technology is that they work, they work well, and they've been working well for decades.

      • Re:Versus OpSys (Score:2, Insightful)

        by Root Down ( 208740 )
        Did I say immediately? No. Given the course of programing languages over the last 20 years, object models seem the not too distant future for database applications. Whether they work well or not is a question of both preference and application requirements. Of course new vendors will not leap at the chance to use an unfamiliar database model, and the money backing the relational models upon which several major DBs are based is pressing for it to stay that way. Of course people in support of the ODM are on the fringe right now, but so were Linux users just a few years back. If we stuck with the dominant model in all things, we'd have never progressed.
        • Re:Versus OpSys (Score:2, Interesting)

          by denshi ( 173594 )
          "They laughed at Einstein. They laughed at Newton. But they also laughed at Bozo the clown."

          Take this over to comp.databases. There you will find a small, but extremely vocal, crowd of ODM developers with a habit of completely failing to learn relational theory. That, I suppose, more than anything else is the worst -- they dub their products 'post-relational', without ever learning what 'relational' is.

          More importantly, you must learn the distinction between data models and programming languages. See my previous post for more details.

  • InnoDB (Score:4, Insightful)

    by flamingcow ( 153884 ) on Tuesday August 14, 2001 @08:40AM (#2142152) Homepage
    MySQL has two table types that support row-level locking and transactions. One is tied up in this contractual mess, but the other, InnoDB [innodb.com] has no such issues, and may even be faster for many purposes.
    • Re:InnoDB (Score:4, Informative)

      by oingoboingo ( 179159 ) on Tuesday August 14, 2001 @08:54AM (#2128079)
      One is tied up in this contractual mess, but the other, InnoDB has no such issues, and may even be faster for many purposes.

      We did recently quite a bit of Perl development using MySQL and InnoDB tables, and they worked (surprisingly) well. Having transactions (finally!!) in MySQL is a huge blessing.

      Somewhat related...while the article mentions that MySQL and Postgres don't have the large application development support infrastructures that the bigger commercial database have, they can be a lot quicker to prototype and develop with because of their relative simplicity.

      We're in the middle of migrating our application to DB2 on RS/6000, and I have to say I'm missing MySQL's simplicity of administration and configuration...you can try out a lot of new ideas quickly with MySQL, whereas a big chunk of our time at the moment is spent poring over DB2 manuals for obscure command switches and SQL options (the LOAD utility can be a barrel of laughs for newcomers)...of course if our DBA was a little more competent, but that's a different story :-(

      (And yes I do realise DB2 is much more powerful/robust...I'm talking about ease of development and rapid prototyping!)

      • DB2 v PostgreSQL (Score:3, Interesting)

        by /dev/zero ( 116295 )

        I've moved a major (~8GB) database from DB2 to PostgreSQL for a client. It runs faster and is easier to feed and administer now. I'm in the process of moving a similar-sized database and app from MS SQL Server to PostgreSQL for the same reasons (plus the openness of PostgreSQL and Linux).

        I really like DB2, it's very powerful, robust, and scalable. But it requires a fair amount of admin expertise and time. Not so much as Oracle, but much more than PostgreSQL.

        What, frankly, suprised the heck out of me was the fact that nearly all of my queries (this is an audit system, OLAP, not OLTP) ran between two and four times faster under PostgreSQL. That adds up pretty quickly!

        As far as the application development support infrastructures, I'm not really sure what is meant by that. The current implementation of stored procedures in PostgreSQL falls short of what DB2 provides, I'll grant. But support for C, Java, Perl, PHP, Python is all there. It's a pretty high-speed/low-drag setup, IMHO.

        The set of problems for which PostgreSQL is the best solution is expanding pretty rapidly. I won't pretend that it's the be-all RDBMS, I don't think such a thing exits. I would say that it's worth a serious look for many situations.


        • In other words, instead of reading some redbooks or, heaven forbid, the DB2 manual, you spent all that time migrating an application to a totally different platform!

          It must be great to be a consultant!
          • by Jason Earl ( 1894 )

            Imagine that, a consultant that not only lowered the maintenance and upgrade fees for his client, but also delivered a solution that was easier to maintain and ran faster to boot. I bet the port wasn't even that difficult. PostgreSQL is getting to be quite competitive feature-wise.

            Believe it or not, this is precisely the type of things that most employers want. However, most IS groups are too busy with CYA tactics to ever even worry about providing the best solution for the job. They just want to choose software that is safe, and in those cases the more expensive it is the better.

            Your response was literally the funniest thing that I have heard in some time. Someone replaced DB2 with a low-cost, low maintenance PostgreSQL solution, and your suggestion is that he should have instead spent his time reading some arcane IBM manual.

    • Re:InnoDB (Score:3, Interesting)

      by Hrunting ( 2191 )
      One is tied up in this contractual mess, but the other, InnoDB has no such issues, and may even be faster for many purposes.

      That might be the understatement of the year. InnoDB touts itself as the "fastest disk-based database" currently on the market. It's a pretty tall-order, but it lives up to it. Our internal benchmarking tests for our application purposes show it to be about 7x faster than an identical PostgreSQL 7.1.2 solution. I've seen reports on the mailing lists that it can be up to 18x faster. You also get the simplicity and maturity of MySQL. The InnoDB benchmark [innodb.com] page has their own benchmarks, which pretty much mirror what we've seen internally.

      Of course, MySQL has other drawbacks, namely that it doesn't support triggers or table inheritance or some of the more complex nuances of standard SQL, but the 95% of stuff it does have is very fast, and the other 5% can be handled in code. MySQL isn't popular because it's open-source, though. It's popular because it's good, free, and most importantly, extremely easy and intuitive to use.
      • Re:InnoDB (Score:3, Interesting)

        by tzanger ( 1575 )

        It's a pretty tall-order, but it lives up to it. Our internal benchmarking tests for our application purposes show it to be about 7x faster than an identical PostgreSQL 7.1.2 solution. I've seen reports on the mailing lists that it can be up to 18x faster. You also get the simplicity and maturity of MySQL. The InnoDB benchmark page has their own benchmarks, which pretty much mirror what we've seen internally.

        Just a quick look at the benchmarks link tells me that they have fsync turned on on Postgres. What exactly is fsync? Every time Postgres touches the disk, it sync()s. Slow? Hell yeah. But you won't lose data in the cache. It's turned on by default.

        I realize that Postgres isn't the fastest in the world, but it's not 7x slower on 100k inserts. That's just bad benchmarking. Deceitful even.

        If fsync is not on, I apologize. However the link mentions no performance tuning other than buffer pools and log buffers. If Postgres is defeated by 7x (18x?!) in a fair test, I'll concede. However this looks like the MySQL testing benchmarks on mysql.org; bullshit, plain and simple.

        • fsync (Score:2, Interesting)

          by denshi ( 173594 )
          You probably already know this, but fsync isn't as relevant to perf as it was on Postgres7.0 and lower. 7.1 uses write-ahead-logging (same as Oracle) and writes that info into tables when it's convenient. 7.0 and lower had to write into the tables & indexes on each fsync, which means moving around a hell of a lot more data. That's really why 7.1 blows the doors off MySQL in recent tests. That's also why InnoDB is so fast -- it has WAL as well. As an aside, InnoDB has an 8k row limit...sound familiar? -It should, Postgres had that last year.

          As for data lossage, well, there's a lot to discuss about on-disc caches and power supplies, SCSI vs. IDE. The best guarantee against data loss is still a big-ass UPS and some really fscking attentive operators.

      • Of course, MySQL has other drawbacks, namely that it doesn't support triggers or table inheritance or some of the more complex nuances of standard SQL, but the 95% of stuff it does have is very fast, and the other 5% can be handled in code.

        The instant you decide to move data and/or referential integrity from the DB into 'code', you've lost the battle. I can't believe someone would even suggest this. Sure, stored procedures are a plus and most times they aren't necessary, but you simply cannot have your integrity checks outside the DB. That's the whole god-damned point of an RDBMS! If your integrity depends on unusual interactions in the data store, stored procedures are often the only way out. And you can't have stored procs that work to enforce integrity without triggers.

        If you haven't got the integrity, you may as well be using a hashed filesystem to store your data for all the difference it would make. Hell, the hashed fs would probably be faster since it isn't pretending to be an RDBMS.

      • Maturity? Just how mature is a RDBMS that doesn't even support referential integrity? Sure, it may speed things up sometimes, but do I really want to make my app code twice as big just to handle referential rules that should have been in the database in the first place?

  • by SparkyUK ( 10333 ) on Tuesday August 14, 2001 @08:41AM (#2142153)
    Actually, Interbase can do "hot" backups and has support for replication.

    People really ought to look more closely at Interbase. It just works.
  • Because of MySQL's design, there's a silver lining here. The Gemini back-end (which, BTW is the guts of the Progress database (NOT PostgreSQL, which is a competing open source database), under a different name, and open sourced) is totally stand-alone in the sense that the MySQL folks just have to continue to support the table management API that they already had for things like Berkely DB and accept bugs from everyone including NuSphere.

    Outside of that, they can stick their fingers in their ears and yell, "lalalalala, we can't here you!" all they like at NuSphere, and no harm comes of it. NuSphere for their part can stick their fingers in their ears too, because 99% of their effort goes into the Gemini back-end and their Apache/PHP/MySQL shrink-wrap bundle.

    These two can feud all they like, and still work together seamlessly. This is the part of the open source benefit that most closed source types don't get yet. When they do, it's going to rock thier world!
    • MySQL uses Progess? I had no idea. I used Progress for a short time and found it to be one of the most ridiculous and obtuse pieces of crap I've ever seen. But MySQL? Love it. My recollection of Progress is that it was more of an integrated development environment, with the DB wrapped in with code. Is this not true?
      • You're thinking of their 4GL. Every major database vendor has a 4GL ("fourth generation language", not my choice of terms). Most of them are really awful, but they have their place in certain business settings (right next to COBOL).

        Progress the database was actually pretty nice, and had some features that are still not supported well in the rest of the commercial databases.
  • From Oracle: "Databases are dramatically more complicated than any Web server or operating system technology."

    Somehow, Oracle is saying that the Open Source comunity is not 'capable' of producing a dominant database...

    • by micromoog ( 206608 ) on Tuesday August 14, 2001 @08:52AM (#2125352)
      Oracle is saying that the Open Source comunity is not 'capable' of producing a dominant database

      No. The point is that the design of a great DBMS takes a lot more unity than the large-scale projects OSS has tackled previously. In a DBMS, there must be an internal set of standards for everything from datatypes to join optimization logic.

      Databases just don't lend themselves to fragmented development the way operating systems do. Frankly, I'm skeptical that an OSS project could (using current development practices) pull together and produce something as capable and stable as DB2 or Oracle.

      • Databases just don't lend themselves to fragmented development the way operating systems do.
        Please back up that assertion. While you are doing that, I would like to remind you that the Postgres developers have never actually met in person. Yours is the same argument that every commercial software provider has employed over the last 5 years against free software. I think the truth of the matter, that no one yet knows real theory behind project management, is far more frightening.

        In regards to databases, what you have omitted is that the database problem is 2 decades younger than the operating systems problem. The OS problem was solved by the mid '70s. The RDBMS problem has only been 'solved', if you think it has been, by the early '90s. Linux was able to follow much more well-trod ground than Postgres, and I expect the development time of the latter to consequently lag. I have not, OTOH, seen any evidence supporting your assertion.

      • If you want stability in your database or in your OS, you have to follow the same principles.

        First, you have to define/document the core functionality. Then you have to define/document your data structure. Next you have to define/document the modules that will provide that functionality, including all the interfaces. Only then do you start to write anything other than throw-away, proof-of-concept code.

        Does the Open Source community have the patience to go through three rounds of development without any code? I don't know.

        I do know that this technique works. I've used it repeatedly. Many years ago I was asked to produce the first ISAM (Index Sequential Access Method) for a PDP 11 that only had sequential & relative I/O. I delivered a self-maintaining ISAM in about 6 weeks, having had no previous exposure to the issues, but following this approach.

        I've used the same approach to produce enterprise-wide MRP & CRM systems.

        I've also used it to produce package software for manufacturing firms that my company successfully delivered, with a full, money back guarantee -- and none of our customers ever asked for a refund.

        So I know the technique works with projects of great complexity. Complexity is not the issue. Discipline, to achieve functionality, compatability and completeness, that's the issue.

      • by Anonymous Coward on Tuesday August 14, 2001 @08:58AM (#2115828)
        You are evil. OSS can accomplish anything ... well, web browsers are hard! ... I'm sure a database is easy though!
      • OSS projects probably could produce something similar to Oracle or DB2, in time, but is there a Open Source market for the features that make Oracle and DB2 special?

        For example, how many users of PostgreSQL, MySQL, etc. are planning on setting up a database that can stay available through nuclear attack or power grid failures? Generally, these super-duper robust databases get set up on several "big iron" servers, which means the licensing and administration for Oracle or DB2 just isn't that big of a deal relative to hardware costs, site construction costs, and staff salaries.

        For certain projects, paying for Oracle or DB2 can actually save a heap of trouble, since they are so damn capable. This can make them more than worth their price.

        On the other hand, I cannot advocate these super databases for small projects. That's where the current OSS databases fit in quite well. Therefore, would OSS really benefit from trying to compete with Oracle and DB2?

    • From Oracle: "Databases are dramatically more complicated than any Web server or operating system technology."

      Somehow, Oracle is saying that the Open Source comunity is not 'capable' of producing a dominant database...

      Not being overly qualified on the issue - but I thought they would both involve much the same issues - concurrency (e.g. - SMP in OS's), failsafe (Hot swap raid, clustering, and a few features yet to be developed for linux), reliabilty/stability (Linux has this!), efficiency, etc etc. It seems several Free OS's have solved all the issues that database manufacturers would face - so what are they claiming could be so complex that Free software people couldn't cope with?


  • I'd agree with the article that the Open Source offerings currently have many limitations when compared to the commercial ones, but this is more due to their lack of maturity than anything else.

    We should remember that oracle & db2 have had over 20 years to get to where they are now. Have a look at this article [joelonsoftware.com] to see what I mean about maturity of products.

    However the open source community has several advantages and disadvantages over the commercial players. 1. we dont have all the legacy bloatware which makes the commercial offerings so large 2. we're able to design using current best practice, not something which was dreamed up 20 years ago and no longer applies (no I'm not talking about the relational model but things like distributed storage, sans, nas etc).

    However, we also don't have the guarentee that the original developers will still be here in 10 years time, working on the software and adapting it for new needs. Admit it, how many people are prepared to dedicate their careers to a single piece of software? not many. so can you understand why commercial companies are less than eager to use open source for critical/production systems?
    • By best practices, do you mean having warring companies in the midst of litigation seperately developing key database features?

      Or do you mean not maintaining things like man pages in an operating system?
  • Does that imply a fully fledged Java VM that executes stored procedures in Java?

    Is something like PLSQL a mandatory part of something we call a relational database?

    Oracle has a maximum view on relational databases, because it is their instrument to dominate adjacent markets; just as the OS is for M$.

    PLSQL is something created for the benefit of Oracle, not for the benefit of the customer, who gets stuck in a proprietary language and horrible design consequences.
  • has its purposes (Score:4, Insightful)

    by beanerspace ( 443710 ) on Tuesday August 14, 2001 @09:03AM (#2153955) Homepage

    Bah ! I remember in the early 80's when big iron buddies used to point ant laugh at dBase II. What they didn't understand, and what some of the big database boys and users don't understand now, is that larger isn't always better.

    Databases like MySQL make it very easy for webhosting companies to offer free databases without loosing their shirts or minds. They make it very easy for students to learn SQL. They're also much kinder on resource.

    Yes, I'd love to be able to roll-back pooched transactions, but then I have to commit everything as well. Certainly cascades would be slick, but poorly written, they can shoot your foot clean off. Likewise, I can see all the lame support calls coming in because users don't understand the triggers are attempting to maintain referential integrity on foreign keys.

    Within a given context, sometimes smaller is suits the purpose better.

  • by rleyton ( 14248 ) on Tuesday August 14, 2001 @09:05AM (#2153961) Homepage
    Whilst it's a good and interesting article, echoing many of my reservations wrt. open source databases, it misses perhaps the single biggest point that people need support with an agreed escalation process, for the DBMS implementation - often the single most important component in any system

    If a database goes wrong (and in Oracles case, my experience is that that's often), and we can't solve it ourselves, we need to be able to get on the phone and speak to somebody who can help. Now, I know that there are companies that offer support for OS DBMS's, but Oracle, Sybase and IBM's round the clock support offering is what i'm after. and getting skilled technicians (possibly the development team itself) involved quickly. OK, so open source offers this as by merit of "use the source luke", but in a corporate environment, this is neither likely or necessarily sensible.

    Another, and perhaps more important, aspect to bear in mind (and this is not covered by the article for obvious reasons) is that Oracle, Sybase and DB2 are not the be-all and end-all of RDBMS offerings. There are better, and often significantly cheaper, closed-source offerings out there. One of my current favourites (which I'm working with at the moment) is Clustra [clustra.com] - a DBMS that offers 99.999% availability, scheduled and unscheduled, pretty much out of the box, with Linux as their first released OS for the latest 4.1 offering

    So, in a nutshell - Open source support offerings need to be improved, but don't rule out the smaller fish in this crowded, and very competitive pond.

    Who said databases were boring?

    • Look at Great Bridge's website [greatbridge.com] and you will find that 24x7 support is available, for a price. Great Bridge also employs at least one of the developers of the PostgreSQL database. I don't know about any of the MySQL options but you can have it with PostgreSQL.
    • We do not offer a true 24x7 phone support, but we get close - most support requests are answered in a couple of hours and you are talking to the developer in charge of the code in question. Many of our customers have commented that the quality of our support is much higher than what they have ever seen from commercial vendors. For more info on our support options, see https://order.mysql.com/ [mysql.com]

      Sasha Pachev

  • MySQL is a joke.

    What? A web developer bashing the SQL server basically designed for web development? Yeah, and for very simple reasons:
    1) No transaction protection means no reliability (and no, hacked add-ins do not transaction protection make) At all. If you use MySQL for anything more than a teenage girl's weblog, you're asking for trouble the first time your CPU spikes.
    2) No triggers means relying on slow connections to do all your work across servers. Update a table and need to update its relations? Well, you'd better know their structures implicitly.
    3) No stored procs: I couldn't fricking beleive this when I first used MySQL. What do you mean, no stored procs, no conditional logic in statements and no subqueries? MySQL basically requires you to code bad SQL...lots of crosstalk between servers and lots of iterative operations that should be done for you.
    4) A very shoddy GUI. The shoddiest, in fact...it's the only GUI I've ever used for an RDB that was worse than raw SQL.

    If you're doing any real development work, drop MySQL like a bad habit and pick up PostGreSQL. PGSQL does everything the big boys (db2, MS SQL, Sybase, Oracle) do and fairly well, meaning it can scale like a motherfucker. I ported our site from MS SQL to two PostGreSQL servers in a day and a half, after a week of trying to rewrite all our SPs in java and C and basically reducing the speed of our hefty article management work to a pittance.

    MySQL has a slight advantage over using comma delimited text files or a good XML parser, but considering that there's a much better option in PostGreSQL, it will never touch my servers again. It's Free Software -- Free as in Free Dung.
    • At all. If you use MySQL for anything more than a teenage girl's weblog, you're asking for trouble the first time your CPU spikes.

      Better go inform Yahoo that all of their unscheduled downtime is a direct result from using technology that can only power a teenager's weblog.

      We use MySQL because it's stable, fast, easy to use, and doesn't cost us a ridiculous amount of money to run. We've seen one of our systems scale up from 0 queries/sec to 1200 queries/sec on x86.

      Statements like this poster's are so frustratingly inaccurate that I've written a paper on dispelling these stupid myths. People can and do and ENJOY getting work done with MySQL. Don't succumb to senseless prejudices.

      MySQL Myths Debunked [bacarella.com]

      • Right. Way to disspell one of my statements -- but there's still no stored procs, still no triggers, still nothing that would make this more than just another "make do" open source solution.

        MySQL is usable, yes, and fast, but PostGreSQL is more useful with similar speed. So why use MySQL? My guess is that most MySQL developers are of the dominant school in OSS that fights against anything taught in MIS classes, meaning no objects, no complex relations, no self-cleanup or code reuse. Me, I'm all about the OOP principle of modular design and self maintenance...PostGreSQL, thorugh stored procs and triggers, allows me to code "almost" as if it were an OODBMS. This makes adding new functionality much faster and less painless...meaning that for a slightly larger initial investment I don't have to much about in pages and pages of code to alter an update statement whereever it's used. And no, just putting the statement in an include isn't enough...this reduces your ability to include multiple statements within a single transaction, furhur reducing your number of necesary connections and vastly reducing the crosstalk which is always the biggest barrier in client-server applications.

        So while you might be getting a few hundred extra connections per second by using MySQL, i'm reducing my connection count by a third. Your machine gun is highly effective, but I'll take my BFG.
        • I'm afraid your argument isn't convincing.

          Breaking it down, you're saying: "By my RDBMS having many OO features, good application design is unnecessary! Everything's done in the RDBMS!"

          I'm positive that's not what you meant. But you phrased it assuming that if someone uses MySQL, they'll just write badly designed applications or simple weblogs.

          Design is just as important with MySQL as it is any other RDBMS. And I fully appreciate MySQL for what it is.

          So what's the moral here? Shitty applications and shitty developers are everywhere. That's not the fault of the RDBMS they use.

How come financial advisors never seem to be as wealthy as they claim they'll make you?