January 27, 2004

MySQL's MaxDB: A work in progress

Author: Russell Pavlicek

Most people working in the database world know about the open source database MySQL, but fewer are familiar with MaxDB, MySQL's enterprise-class brother. The current MaxDB release is basically a rebranded release of SAP DB with a number of incremental improvements.The lineage of MaxDB goes back several years, involves a few companies,
and uses a few names. It grew out of Adabas, a database that has been
around since the 1980s. A version of Adabas was
obtained by the German software company SAP AB in the mid-1990's and
eventually rebranded as SAP
DB. Displaying amazing foresight for the time, SAP AB decided to release
the source code of SAP DB under the GNU GPL in the year 2000.
Unfortunately, this event was not promoted by SAP AB, so SAP DB
languished as perhaps the most significant yet obscure Open Source project in the community.

In May 2003, the folks at MySQL AB entered into an agreement with SAP AB
to drive the development of the software and release it under both
commercial and Open Source licenses. The result is MaxDB, which was
finally released as developer-only code six months later.

Of course, this being the first release of the software as MaxDB, a few remnants of the SAP heritage are still visible. For
instance, unpacking the installation tarballs yields a number of other
tarballs that begin with the letters "SDB." The default values for group
and user are still "sdba" and "sdb" respectively. But aside from a few
incidental things like that, the software now presents itself as
MaxDB rather than SAP DB.

The MySQL manual includes a good high-level feature comparison between
the two databases. MaxDB includes such important enterprise-ready features as
stored procedures, triggers, and advanced administrative functions. The
folks at MySQL AB intend to grow the interoperability features between the
two databases in the near future.

I was one of the very few writers to review SAP DB prior to the
arrangement with MySQL.
I found SAP DB to be feature-rich, but its age showed. The database
administration syntax seemed rather crufty, and the error messages were
often more annoying than useful. A professional database
administrator could undoubtedly master the skills needed to make SAP DB
perform as required, but its administrator interface is less
friendly than those of databases I used 10 years ago. Eventually its admin
interface will need to be brought into the new millennium.

Documentation

Documentation is available in HTML format. You can download the
pages in a single 3MB tarball or view them online from the MySQL Web site.

The documentation bears considerable resemblance to the older SAP DB
documentation, but it has become more
straightforward. When I looked at SAP DB six months ago, I found that most
of the information I needed was in the documentation, but trying to locate
that information was sometimes difficult. The installation portion of the
MaxDB documentation appears to be much more streamlined and user-friendly.
That alone is a major advancement in the usability of the software.

Installation

I've looked at a number of enterprise-class software packages on Linux
recently, but I can't think of one as simple to install as MaxDB. If you
are doing an install to be used in a major development or production
environment, you will want to manually create a group and user for it on
the network. Likewise, your organization may have standard locations for
placement of programs and data which need to be determined ahead of time.

But if you are doing an installation for testing or local development, you
simply need to start the installation script, take the default values for
each response, and let the process roll. On the ancient first-generation
Pentium I used for testing, the entire install process took less than 10
minutes. On a more modern machine you had better have your coffee in hand when you begin the
process, as you won't have time for a break during the install.

First look

The basic structure of MaxDB appears to be unchanged from SAP DB. The
program dbmcli is still used to administer the database structure, while
xsql is still an interactive interface for SQL commands. The list
of other utilities also appears to be about the same. Given the fact
that this release of MaxDB is basically an incremental improvement over
the last release of SAP DB, a strong similarity between the two is
expected and understandable.

But how has the command syntax fared in the changeover? As a starting
place, I tried the commands I documented in my earlier SAP DB. I
was a bit surprised to find that a few commands were removed without any
special error message inserted to inform the user. For example, the
util_activate command in the dbmcli interface has been removed. The
db_activate command appears to be the replacement, yet entering
util_activate in dbmcli yields an "unknown command" error. I'd rather have seen a message like "command is now obsolete; use db_activate."

To better understand the modified commands for database creation, see the db_create Command: Example page in the
MaxDB documentation. The example acts as a good starting place for basic command flow.

There are several other incremental improvements in the new release. I was
particularly intrigued by the item called "Improved security concept for
UNIX," so I went looking for details. Unfortunately, after searching for
some time, I discovered that no formal release notes covering the changes
from SAP DB 7.4 to MaxDB 7.5 have been published as of this writing.
Most enterprise users will need such detail before they consider making the switch, though because the current MaxDB release is supposed to be used only by developers, this is
not a critical issue.

Potential enterprise users will still appreciate many of the more mature
features of the database, however. For example, while many databases are
trying to bring their OLTP performance into the major leagues, MaxDB has a
long history of enterprise-quality transaction processing. The database
also boasts other corporate-friendly capabilities, like automatic disk
space reallocation, automatic balancing of disk I/O, and support for SAP's
application software. The software also features key technologies to
virtually eliminate planned downtime, such as online database backup and
configuration, and advanced failover logic in clustering situations.
Plus, MaxDB inherits SAP DB's support for the SQL-92 standards, stored
procedures, triggers, and array-based operations. Add other features like
Unicode support and XML indexing, and you have quite a strong database
contender.

Bottom line

This developer release of MaxDB may not be intended for corporate users,
but there are plenty of reasons for corporate users to watch its progress.
My overall impression is that slowly, but surely, efforts are being made
to improve this software. Organizations in the market for an enterprise-ready Open Source
database would be well advised to keep close tabs on the
ongoing development of this project.

Click Here!