The State of the Dolphin at the MySQL Users Conference 2005by Daniel H. Steinberg
Much has changed in the decade since the first code was written for MySQL. The machines we carry with us are many times more powerful and the number of nodes on the network has exploded in the years since 1995.The first morning at the MySQL Users Conference 2005 began with an assessment of where MySQL is right now and where it is heading next. Before heading out for cake to celebrate the tenth anniversary, attendees were also challenged to consider what has been successful about open source itself.
State of the Dolphin
David Axmark and Michael "Monty" Widenius delivered the "State of the Dolphin" keynote. They observed that many people choose their databases after deciding on a language or a platform. This led them to ensure that they release binaries covering as many platforms as possible each time they do a release. In addition to the binaries, they aim to release code that comes from a single source tree, compiles almost everywhere, and just works.
Building on this, they encouraged the developers in the audience to make their code portable. Although it takes a lot of work, the advice is to keep portability in mind from the very beginning. MySQL itself was offered as a good example of portable code that developers could study and emulate.
One of the frequent questions Axmark and Widenius get at MySQL is "When are you going to go 64 bit?" This puzzles them since they went to 64 bit five years ago. There had been requests to support 64 bit for the Alpha. Once Digital provided a machine, it took two days to make the necessary changes and deliver a binary. There is still work to do to add algorithms that take better advantage of 64 bit, but large customers such as Sabre, Friendster, Ongame, and CNet already use 64 bit because it allows them to target more than 4GB of memory.
The list of supported languages is comprehensive. In addition, supported connectors include C, ODBC, JDBC, and .NET/Mono. Connector/MXJ allows you to embed MySQL in Java applications. MySQL has also helped the community develop connectors for PHP and Perl DBI.
Axmark and Widenius announced that MySQL 5.0 is code complete. The new version supports stored procedures and triggers following the ANSI SQL standards. MySQL can be a transaction manager using XA distributed transactions. Financial applications have requested the Precision Math that is included in 5.0. Exact calculations are possible with well-defined rounding. For performance reasons, the precision is not infinite. Out of the box, you get at least 56 digits of precision, and you can recompile and specify more digits. You can now choose to run MySQL in the strict mode. This means that instead of getting the warning messages you got in 4.0 when performing operations that might change data, you can now get an error instead.
The 30 MySQL developers working on the server engine are all in bug-fixing mode, working to stabilize this release. The expectation is that 4.1 and 4.0 applications should currently work on 5.0, but some of the new features still have bugs. The pair encouraged the audience to download the recently released beta 5.0.4 and submit bug reports.
At the end of the keynote, the duo returned to this theme, advising that "it's hard to submit code to us." They do look at submitted code but often use the ideas behind the code rather than the submissions themselves. For them, "the most common contribution is repeatable bug reports and good ideas."
In fact, squashing bugs is their theory on MySQL's success. There is a cycle. You need good bug reports to stabilize and improve your product. But the community needs to feel that the company is responding to the bug reports and fixing them in a reasonable time frame. This response leads to more bug reports, which, in turn, leads to a more valuable product. They make the analogy that open source is like a democracy. It's not perfect, but you can see what's wrong. Even in the free community edition, all the features are available.
Defining Open Source
Michael Tiemann from Red Hat and the OSI wished MySQL AB a "Happy Birthday" before launching into his thoughts on open source. He challenged that since nobody knows what the great innovation is going to be, we need to ask ourselves, with all of these possibilities out there, what will we do? He relayed a quote from the Swedish agency for public management that "Free and open source software, in many ways, both functionally and qualitatively, is quite equivalent to or better than proprietary products." His keynote looked into defining and identifying the strengths of open source.
There are challenges in explaining the business model of open source when you are seeking financing. Tiemann generalized that in many projects you get 85% of the work done with around a dozen people. So how much money do you ask for? Some projects have upwards of 400 people who have contributed. Should you ask an investor for the money to support 40 times the number of people doing the core work that achieves 85 percent of what you need just to get to a perfect product?
Tiemann explained that the difference in an open source project is that developer number 388 isn't twiddling his thumbs waiting to fix one line of code. Generally, they are working on their own projects and run into some issue. They decide its easier to fix this code than to work around it. This is what makes open source code work. Without this option to submit fixes, the developer would have to work around the problem. This leaves scar tissue in his own code. Over time, the amount of scar tissue grows to a point that it obscures the initial decent code the developer began with.
Part of the key is to realize that most innovation comes from users and not from the supplier. He looked at Eric von Hippel's User Innovation Toolkits. Traditionally, a supplier would perform some amount of advanced development, which informs the design and which leads to building prototypes. At this point, the customer would provide feedback that goes back to the supplier, and the process continues from the design step. If, instead, the customer takes over the design, build, and test part of the process, a lot of value is added to the product. This is part of the benefit of open source.
Join us at the first Where 2.0 Conference June 29-30, 2005 in sunny San Francisco. Location-based services and mapping are becoming mainstream technologies. Explore the emerging consumer and enterprise ecosystems around location-aware technologies--ecosystems that increasingly impact the way we work and play. Need more reasons to attend?
But what, Tiemann asked, explains the success of open source? Is it the code or the community? Is it the supplier or the user base? Is it the license itself? He asked if there was a benefit to adding 50 more licenses that people could choose from and noted that most OSI-certified licenses cover only a single project. On the other hand, the GPL covers more than 70 percent of a typical Linux distribution. As another example, the GPL and BSD licenses cover more than 70 percent of all projects on SourceForge. He cited this as an example that open source is already consolidating.
He next cited Bruce Mau's work, "Massive Change," saying that for most of us design is invisible until it fails. He used Microsoft's shared source license as an example of a design failure pointing to the exponential increase in money that Microsoft spends on security. Contrast that with how the community rises to address security issues and bugs in open source code.
Tiemann said that this difference should lead to a rejection of a binary client/developer relationship. As a contrast, he pointed to the GPL, which rejects the binary relationship and enforces a plural relationship where problems are taken up everywhere and solutions are developed, tested, and contributed to the global commons. He ended by asking, "Is my relationship just me and the vendor being smart, or is it once you are in you are all in?"
Daniel H. Steinberg is the editor for the new series of Mac Developer titles for the Pragmatic Programmers. He writes feature articles for Apple's ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple's Worldwide Developer Conference, MacWorld, MacHack and other Mac developer conferences.
View more coverage from the MySQL Users Conference.