Friday, 21 July 2006

MySQL Max Build Policy

Starting MySQL 5.1 (1), we're simplifying life when it comes to the number of builds for each platform. We will be building only one binary package for each platform (2): the binary known in MySQL 5.0 as "max". The assumption is that users prefer one binary with all options enabled, rather than having to choose the proper version at install time (or worse still, rely on others having made the proper choice on their behalf).

And with only one version, there is no need to call it "max". "The max version is dead. Long live the max version!". Not to speak in riddles, the standard mysqld binary is intended to contain all mysqld-max features. While 5.1.11 e.g. in Linux (x86) package still has three binaries

mysql-5.1.11-beta-linux-i686/bin/mysqld
mysql-5.1.11-beta-linux-i686/bin/mysqld-debug
mysql-5.1.11-beta-linux-i686/bin/mysqld-max

the plan is to reduce this to two. Already now in 5.1, the only difference between mysqld and mysqld-max is the BDB table handler. The only real difference going forward is removing support of BDB, which is the first step towards removing it also from the source after 5.1.

We think the majority of our users agree that the simplification is beneficial. This way, MySQL will by default contain MySQL Cluster, together with all other functionality we deem stable enough to provide our user base with.

In MySQL 5.0 and earlier, the Standard/Max duality has proven problematic from the user's perspective:


  • The question "Which package should I install?" is a very common one on the mailing list.

  • There is a limit to the number of flavours a user can decide between, more flavours is just overwhelming.

  • The risk of the user picking the wrong binary and then thinking "this is not supported" is high.

  • As we want customers to try new things, we should see to it that they already have them installed.


I imagine the user asking himself or herself questions like

  • Has my DBA installed the version I want and need?

  • Are security functions (such as SSL) available in all binaries?

  • Does the Debug version have the extra debug information on top of Standard or on top of Max?

  • Is MySQL Max somehow related to MaxDB? (Footnote: No, it is not)


I won't hide the fact that our Build team also saves some time by not providing multiple binaries: We get a shorter turnaround time for builds, for tests and for uploads to mirrors. And it helps our commercial Support team, which now needs to ask users to separate between flavours for versions, and keep track of differences between flavours.

However, our simplification is not as much about reducing our own build complexity, as about simplifying life for our user base.

  • Fewer choices means less time spent choosing, simpler lists on the Web.

  • The user/developer is less dependent on which particular version he has, when he uses/develops applications based on MySQL.

  • The developer does not need to convince his DBA or ISP to upgrade into a particular flavour of a release.

  • ISPs and DBAs don't have to make complex decisions on which flavours to support.

  • Distributors will hopefully pick up our choice of configuration, to further reduce the number of different MySQL configurations available (and thereby the confusion).



Like with any decision, we don't have all the facts at hand. So now is the time to let us know if we're on track or not. This can be done on
the forums at http://forums.mysql.com/list.php?3, or on the mailing lists at http://lists.mysql.com/mysql or as comments to this blog (if you register yourself first).



Footnotes:

(1) The MySQL 5.1 download pages at http://dev.mysql.com/downloads/mysql/5.1.html say


As we're working on making some changes to how we will provide binary distributions of MySQL 5.1, this release currently only provides "Max" binaries for a few selected platforms as well as the source distributions.

Compare this to the download pages for MySQL 5.0 Community Edition - Generally Available (GA) Release at http://dev.mysql.com/downloads/mysql/5.0.html where we say


The Standard binaries are recommended for most users

The Max version includes additional features that have not been exhaustively tested or are not required for general usage. When these features have matured and proven to be stable, they will be incorporated into future releases of the Standard binaries. The Max version also, for most platforms, contains MySQL Cluster storage node, management server and mysqld/ndb enabling programs.

The Debug binaries have been compiled with extra debug information, and are not intended for production use, because the included debugging code may reduce performance.


(2) A separate server binary with additional debugging support enabled continues to be included.

1 comment: