Friday, 27 October 2006

ABI fixed; 5.0.27 & 5.0.28 built

A week ago, I noted the following:

The MySQL 5.0.26 released 3 Oct 2006 contains an embarrassing ABI breakage. We’re fixing this bug right now, and making a new build including the first binaries which will carry the name “MySQL Community Server” and “MySQL Enterprise Server” (which obviously did not exist on 3 Oct 2006). We’ll notify both our community and our customers of the new builds when they’re available.

Sorry about the trouble. We’re also improving our internal QA and build processes, in order to avoid future, similar problems.

Now, we have fixed the ABI breakage and built new releases.

  • MySQL Community Server 5.0.27 is built and the packages are being seeded to our mirrors. We will send a release announcement, as we've always done, to, when most mirrors are up to date. This is the first binary carrying the name “MySQL Community Server”.

  • MySQL Enterprise Server 5.0.28 is built and our customers are being informed about how to get the new binaries. This is the first binary carrying the name "MySQL Enterprise Server".

Thursday, 26 October 2006

Pure PHP driver FAQ: Asking Georg Richter

Within hours of yesterday's blog on a pure PHP driver, Georg Richter had been on the German PHP IRC channel as well as on efnet IRC. Georg wrote an FAQ in German.

"For MySQL's PHP team (Ulf Wendel, Andrey Hristov and myself), the plan to publish a new library under the PHP license in March 2007 is not only a challenge and a programming task, but also an opportunity to improve upon what we already have", Georg writes. "The new MySQL differentiation between Community and Enterprise gives us the possibility to speed up the implementation of features essential to PHP, without being as dependent on MySQL release cycles as before", he concludes his overview.

Then, Georg provides this FAQ, based on the "partly skeptical, partly enthusiastic" questions he got over IRC and email, as the maintainer of the mysql extensions:

Q: A new PHP driver -- is this yet another MySQL Extension for PHP?

A: No. When we talk about the "pure PHP driver", we refer to a new library that substitutes libmysql.

Q: libmysql is tested in detail, and stable since a long time. Why something new?

A: The libmysql API was developed primarily for C/C++. MySQL wants to keep it lean. MySQL supports many programming languages, that all differ in their properties and working methods, and this reflects itself as differing requirements on the API. It's impossible to get all of these onto one library. Besides technical arguments, there are also legal ones. There are incompatibilities between the GPL and the PHP license, as pointed out in the original blog.

Q: Will PDO and ext/mysql support the new library?

A: Initially, we will only support ext/mysqli. When we have a certain stability, we'll actively support the PDO developers. At any rate, we will take PDO into account already in the design phase, including the wishes of the PDO developers.

Q: So what are the advantages for the developer? What candy will we get?

A: There will absolutely be advantages. Personally, I am looking for a clear performance boost, which our first tests have already indicated. Other advantages are less memory usage and leaner code. On top of that, we plan new functions, like client side query caching. But these are still only in the design phase.

Q: And what are the disadvantages?

A: With choice comes the need to decide between two solutions: The proven old one, and the new one, that will surely need some maturing time. Also, it will to begin with not be possible to use the embedded server with the new library.

Wednesday, 25 October 2006

Developing a pure PHP driver for MySQL

Talking to the PHP community members, I see a recurring theme:

How does MySQL integrate with PHP -- both from a technical and from a licensing perspective?

MySQL provides several ways to integrate between PHP and MySQL, most notably the ext/mysql and ext/mysqli drivers for PHP. These rely on the GPL licensed libmysql library, which by its nature is not compatible with the PHP license. With our not-so-optimally-named "FOSS Exception" , we have extended the rights of our community to use MySQL together with a number of non-GPL FOSS licenses, including the PHP license. This solution works well for many in the PHP community.

But we want to do more:

We plan to develop a pure PHP driver for MySQL, to be licensed under the PHP license itself and donated to the PHP Group for inclusion into PHP6.

We hope this will remove any and all licensing issues that the PHP community might otherwise have with MySQL.

Besides resolving licensing issues, we want the new pure PHP driver to technically integrate better with MySQL:

  • we intend to add support for client-side query caching in the PHP driver for MySQL, probably already to MySQL 5.1 Community Server

  • we intend to add support for a Prepared Statements cache to the PHP driver for MySQL, also implemented on the MySQL Server

We believe both of these will bring added technical value to users of PHP6. Tentatively, we should be able to deliver this in stages starting Q1 of 2007, in time for the preview release of PHP6.

We are still working out the details of this. Expect to see more specifics soon after the PHP conference in Frankfurt early November. Once we have worked out the details, I look forward to this initiative turning into a commitment from our side, and delivering results in the form of a more community-friendly, pure PHP driver for MySQL!

Tuesday, 24 October 2006

YouTube & MySQL & babies

Expect the unexpected! There is a hilarious video on YouTube, called

Do babies dream of being database engineers?

Friday, 20 October 2006

Coming to MySQL Camp

Just booked my flight to MySQL Camp in Mountain View 10-12 Nov 2006. That is the un-conference where we look forward to hanging out with some core MySQL community members. Quite a few proposed session topics, on anything from advice on getting VC funding, to high performance database schemas for folksonomy applications. I might consider presenting the one on how to run a global distributed organisation if the topic gets enough votes.

Right now, I counted 29 attendees in the participant list. Hope to meet with many more MySQL community members there!

ABI broken; new build coming soon

The MySQL 5.0.26 released 3 Oct 2006 contains an embarrassing ABI breakage. We're fixing this bug right now, and making a new build including the first binaries which will carry the name "MySQL Community Server" and "MySQL Enterprise Server" (which obviously did not exist on 3 Oct 2006). We'll notify both our community and our customers of the new builds when they're available.

Sorry about the trouble. We're also improving our internal QA and build processes, in order to avoid future, similar problems.

Central European Customer Conference

Yesterday, we finished this year's Kundenkonferenz in Munich. With over 100 customers, prospects and some community members, it was a successful event.

I was especially happy to listen to Kristian Köhntopp's Performance Tuning workshop. I had never seen MySQL Performance Tuning been presented with such a combination of profound knowledge and excellent sense of humour, before attending Kris's presentation!

Tuesday, 17 October 2006

Introducing the MySQL Community Server and the MySQL Enterprise Server

Today, you will see an announcement of a new flagship commercial offering from our company, called MySQL Enterprise. I want to explain to you why we are making these changes to our business -- and to the delivery of our software.

We recognise that the needs of the MySQL Community are different from the needs of commercial enterprise customers. After 11 years of producing our software, we can no longer hope that a single offering is the best solution for both Community and Enterprise users. Consequently, we are introducing two different offerings for each distinct target group.

The MySQL Community Server is:

  • for the Open Source fluent audience, do-it-yourself (DIY)

  • for those who don't need support

  • free-of-charge

The MySQL Enterprise Server is:

  • for the non-DIY commercial user

  • part of the 'MySQL Enterprise' subscription offering

  • for those who want extra help developing, deploying and managing MySQL DBs

  • coupled with access to MySQL technical support

  • assisted by new automated DBA monitoring and advisory services

With this differentiation, we aim to better serve both categories of MySQL users -- those who are willing to spend time to save money, and those who are willing to spend money to save time.

If our changes succeed in their objective, both audiences will benefit from a more stable, feature-rich and high-quality database. The open source benefits for each of the audiences mutually reinforce each other:

  • Community users get new features at no-cost to them -- funded by paying customers

  • Enterprise users get a more stable, reliable and predictably-released product -- thanks to community participation

Each of these components of the virtuous circle of open source contributes to the development and spreading of a better MySQL for everyone.

By the name MySQL Enterprise, we want to make clear that this is the offering we expect business users of MySQL to be interested in: Are you using MySQL in a production enterprise setting? Go for MySQL Enterprise!

We believe the users of MySQL Community Server expect

  • early access to MySQL features under development

  • that MySQL AB will listen to their input

  • timely corrections to bug fixes they report

  • help with enhancing MySQL for their particular needs

  • channels to communicate with the rest of community for getting assistance

  • an easier process for having contributions accepted in MySQL

  • commitment to Open Source -- including free, unrestricted availability of source code

and this is what we will continue to deliver.

We're happy to note the growth in contributions flowing into MySQL and its ecosystem. To facilitate these, we have

and this is now showing results:

  • 159 Forge projects by 58 distinct contributors

  • 44 Forge snippets by 25 distinct contributors

  • 361 forge users registered

  • 1696 distinct Forge Wiki page titles

  • 184 Forge wiki contributors

  • MySQL Server kernel contributions accepted, such as Jeremy Cole's

On top of this, we expect to soon launch a competition for voting on the look-and-feel of our new MySQL Community Server logotype and Web site. We will also be establishin a pilot program for MySQL Quality Assurance contributors. Most importantly, we're launching the MySQL Winter of Code program, featuring the Connectors Contest and the Storage Engines Encounters, which I will be telling you about separately next week.

Technically, the MySQL Enterprise Server inherits the current MySQL 5.0.26 code base, as does the MySQL Community Server. However, we will be encouraging and incorporating contributions in the form of minor enhancements and experimental features already into the 5.0 version of MySQL Community Server. This way, contributors don't have to wait until the next major release for their improvements to get into use, and enterprise users can continue using 5.0 without seeing any destabilisation of the code base due to new functionality being introduced.

As part of our differentiation, we will do more frequent binary releases of the MySQL Enterprise Server software than of the MySQL Community Server. However, all of our database software is open source, so we will continue to make all releases available over our BitKeeper tree and as source code tarballs -- even if the MySQL Enterprise Server binaries will not be available for public download but limited to our commercial customers and our core QA contributors.

Finally, we will continue to be active good citizens in the greater Free and Open Source Software world. We're participating in the GPLv3 drafting process, we're supporting the Free Software Foundation as FSF corporate patrons, and we're supporting campaigns against the spread of software patents around the globe.

So: Click here to see today's press releases on MySQL Enterprise, which describes our new flagship commercial offering, directed at paying enterprise customers. It refers to the MySQL Network Monitoring & Advisory Services, which is a commercial only offering we are about to launch. In due course, I'll be sharing more about that with you. Stay tuned, and please give me your feedback on what you think (including private email to k a j at m y s q l . c o m)!

Saturday, 14 October 2006

EPLA, SWPAT: Meeting to plan some action

In an article in yesterday's Süddeutsche Zeitung, an EU Commission source is mentioned as saying "it's unclear on whose mandate anti-software-patent campaigner Florian Müller is acting".

Allow me to clarify: On ours.

MySQL AB may be Florian's first and longest-running sponsor in the fight against software patents. However, financing Florian Müller's activities in the EU -- and on the national level in various European countries -- requires a broader group of European companies concerned about software patents in general, and the plans for an European Patent Litigation Agreement in particular. Amongst Florian's other sponsors, let me mention Germany's leading Internet provider 1&1 and Materna, a leading German software company in the ICT sector. All of the sponsors met today in Frankfurt at a management and partly even owner / board of director level.

Our cause is to establish a better patent regime in Europe. Over time, this regime will hopefully spread across the world. We want a competitive society and advocate a free market where innovators are allowed to learn from and even imitate ideas of others, but not to steal intellectual property. As we see it, economic growth, innovation, and employment are not served by today's patent system where pure software patents are being granted even in Europe.

Stay tuned for a call for actions for what small and medium size companies can do to constructively contribute to the political process of establishing a patent regime that truly stimulates innovation and competition. Most of today's incumbent players grew big in a world without software patents. Let them not raise entrance barriers now, by simply changing the rules of the game!