Tangled in the ThreadsJon Udell, Sept 9, 1999
In the databases newsgroup, a pseudonymous contributor called root asked: "Anyone out there with experience using Linux and any of the "closed source" database systems, e.g. DB2, Interbase, Oracle?"
I recommended Solid, a compact, efficient, and (I thought) reasonably-priced product from the Finnish company Solid Information Technology. Just before the demise of BYTE Magazine, I completed a new version of www.byte.com that offered privileged access to magazine subscribers, and it was Solid that ran the subscriber database, driven by a mod_perl application. I found Solid to be a simple and reliable solution to my not-very-complex data-management problem.
Solid was, in fact, the only commercial piece of the solution I built, which otherwise relied on Linux, Apache, and mod_perl. I was a little surprised to find myself deploying, as the most mission-critical thing I'd ever built, a solution that did not include a single line of Microsoft code. But my motives were not ideological. I prototyped the solution two ways -- on NT/IIS/Win32Perl and Linux/Apache/mod_perl -- and found the latter to be faster, more flexible, and more robust.
My advice is: don't let ideology get in the way of business. Open source makes sense when it makes business sense, otherwise not. For this reason, I wasn't ideologically hung up on a 100% open source solution, which might have used the MySQL or PostgreSQL database engines. I thought Solid was better for my purposes than these. I was happy to pay $1600 for a license that permitted unlimited use on my Web server.
Times change, though, and Bjørn Borud reports that Solid is no longer the affordable low-end database that I had found so attractive last year:
Solid was, and still is, a good low end database, but I am sorry to say that the company backstabbed many of their customers by changing their business model radically. They no longer want to sell Solid to small customers, like people who need a good database for their website. they now want to sell Solid to customers who use Solid as an embedded database in their devices, or other customers who would buy heaps and loads of licenses. I don't remember exactly but I think they set some sort of lower limit at $10k -- if you're not going to buy at least $10k worth of software you're not a wanted customer.
Ouch! I was sorry to hear that!
Bjørn went on to offer some useful advice:
The lesson to learn here is probably that:
- Commercial software should be treated with some suspicion. Companies come and go, change strategies, and fall over.
- Don't write your software in a way that makes it depend on a particular brand of database.
Indeed. I've always shied away from vendor-specific SQL (though, admittedly, I've not worked on the kinds of problems that tempted me to use vendor-specific extensions). But assuming you do want to run a commercial database on Linux, which one?
DB2 for Linux
Jeffrey Shell reports positive things about DB2 generally, but raises some questions about the Linux port.
I think the developer edition is $995, with unlimited connections -- you just can't deploy it. I believe you get printed docs with that too. And our experience with the DB2 developer documentation has been incredible. We wasted hours trying to find an answer to thread-safety in the Oracle client libraries. We found the answer in the DB2 docs immediately, without even really looking.
IBM is supporting Linux heavily, more so than the other commercial big boy database players (no matter what Oracle or SyBase may claim). I haven't had chance to use it much, but the developer here who has put in a DB2 installation did say he experienced some weirdnesses with DB2 on Linux, but he thinks they were more Linux-related. DB2 has been running fine on NT, and almost any other platform you can think of.
Our experience, so far, has been good. And IBM's commitment to Linux seems pretty solid (no pun intended).
The thread originator, root, confirmed that the DB2 for Linux may not be clear sailing:
I've got the DB2 for Linux (5.2) beta, and I'm having a difficult time installing it. I've been using DB2 on AIX, SCO, and WinNT for some time. Am I the only one who's had trouble installing DB2 for Linux?
IBM does, indeed, seem very serious about Linux. (However root reminds us: "I was also impressed with OS/2 2.11.") Is DB2 for Linux a promising product that's not quite ready for prime time? Those of you who are using DB2 for Linux and can comment on your experiences, please do, we'd like to hear about them.
Oracle and Informix
Another pseudonymous contributor, ephemeral, puts in a strong vote of confidence for the Linux version of Oracle:
We have installed and run Oracle 8 on Linux (RedHat 6.0), and I must say it is a monster. If you have to stick to x86-based hardware then Oracle on Linux is what you are looking for. We like it so much we are migrating most of our NT/Oracle boxes to Linux.
NOTE: You have to apply a patch to make Oracle work with RedHat 6.0. There is a GLIBC incompatibility or something.
Vanco Ordanoski likes the Linux/Informix combination:
I'm surprised that nobody mentioned Informix so far. They have released a Linux version of both their Standard Engine and Dynamic Server Online databases. There is also a Rapid Development System for Linux. The prices are VERY low: $99 per user!
I have been using Informix for 10 years now, and all I can say that there is simply no other database that is better than this! Oracle may be close, but only as a second choice. Rock-solid, fast as an NHRA dragster on steroids and multi-platform. I have NEVER lost a single byte of data in over 2500 customer implementations so far, ranging from low tens-of-thousands records, up to a several millions.
I come from a COBOL age, and Informix is the only thing that surpasses COBOL in reliability. Yes, I've tried Oracle, MS SQL Server (I will use it again only by court's order) and DB2.
Database documentation woes
As an aside, it's interesting to note just how passionately developers feel about database documentation.
I have never seen the printed manuals for DB2, but if they are as good as you say that alone is a VERY GOOD reason for small/medium companies to chose DB2 as their development platform.
I have wasted weeks of work because of Oracle's bad docs and I've had to endure that gnawing feeling of not being entirely sure about what I'm doing being right or not.
I have been using Oracle for over 10 years. One of the great error messages I saw when I used Oracle on Netware was "This error should not have occurred; please contact your local Oracle representative"!
That apart, has anyone ever seen how complicated Oracle's documentation of two-phase commits is?
I don't think I want to :-)
Speaking of odd behaviour and error messages, do you know what it really means when the Oracle client libraries claim you are out of memory, but the system has plenty of RAM to spare? It usually means that your character translation tables are the wrong file-mode!
This litany of woe is ironic, in a way, since one of the reasons people say they prefer commercial software over open source software is the latter's lack of documentation and support!
Ideology and business
It's fascinating to see database vendors lining up to support Linux, much as they did some years ago when Novell was pushing UnixWare. What's different, this time, is that the OS platform is an open source project. Linux is the defining existence proof of the open source philosophy, which holds that broad collaboration can yield the highest-quality software.
It's not the open source philosophy that now compels Oracle, Informix, and IBM to port their database engines to Linux, of course. It's business. Linux represents a large and growing share of the server market, a fact these companies would be foolish to ignore.
Oracle, Informix, and IBM aren't confused about the business value of open source, and neither should you be. I concluded, a few years ago, that I preferred Linux to NT for a mission-critical Web-server-based application. I further concluded that a commercial Linux database made more sense than the available open-source alternatives. As it turns out, the database I picked -- Solid -- evolved in ways that would have made that an uncomfortable choice. In retrospect, I probably still would have chosen Linux, but I ought to have thought harder about the availability of several robust and affordable Linux databases. Given the scarcity of these, back then, I perhaps ought better to have hooked my Linux/Apache/mod_perl Web server to a database running on commercial Unix, or on NT. Don't let ideology influence these kinds of decisions; it's all too easy to paint yourself into a corner.
What about the open-source databases? Will MySQL and PostgreSQL start to infringe on the territory occupied by DB2, Oracle, and Informix? I hope so. I would like to see these projects reach critical mass just as Linux has, and for the same reasons: large-scale collaboration yielding best-quality software. In the long run, I have a hunch this model of software development will prove unstoppable, and the business of creating packaged software products will devolve into the business of providing services that weave in and around open source infrastructure. The database market isn't there yet, but we live in interesting times, so stay tuned!
Jon Udell (http://udell.roninhouse.com/) was BYTE Magazine's executive editor for new media, the architect of the original www.byte.com, and author of BYTE's Web Project column. He's now an independent Web/Internet consultant, and is the author of Practical Internet Groupware, forthcoming from O'Reilly and Associates.
This work is licensed under a Creative Commons License.