News Stay informed about the latest enterprise technology news and product updates.

Software experts find MySQL code exceptionally clean

Reasoning Inc. compared the source code of open source database MySQL with that of proprietary database software and found it to be six times cleaner.

The code quality of open source data store MySQL is six times better than that of proprietary database software, according to a survey conducted by Reasoning Inc., a Mountain View, Calif.-based automated software inspection service provider.

Reasoning conducted its study in October, using the 4.0.16 production version of MySQL. The analysts found 0.09 defects per thousand lines of source code. More specifically, the company analyzed 236,000 lines of MySQL code and found 21 errors. Comparable proprietary databases contain 0.57 coding errors per thousand lines of code, Reasoning said.

"Many people believe that the open source model enables development teams to focus on quality, versus adding features and meeting deadlines, and that, consequently, this leads to better quality code over time," said Reasoning's director of marketing, Thomas Fry.

Reasoning discovered 15 NULL pointer dereference (NPD) code errors, three memory leak defects and three uninitialized variables.

NPDs occur when there is an attempt to access data at an invalid address, Reasoning said. Memory leaks, meanwhile, are memory losses that occur when dynamic data is no longer used and is never de-allocated. An application may lose available memory every time a leak occurs. Uninitialized variables can cause unpredictable results within an application, leading in some cases to denial-of-service conditions or remote code execution.

MySQL is available for free under the General Public License. It is also sold by MySQL AB, an Uppsala, Sweden-based company. MySQL AB's offering comes with support and subscription services. Recently, the company released MaxDB, a mission-critical enterprise-grade database that's already been certified by SAP. MySQL also has been seen as a complement to high-end databases offered by Oracle Corp. and IBM.

"Three years ago, we were surprised at the interest expressed in MySQL," Marten Mickos, CEO of MySQL AB, recently told "We hadn't expected that conservative, cautious corporations would be so ready to expand their open source usage from the operating system to the database. It is happening faster than we anticipated.

"When the corporations first started coming to us, we didn't really have all the [manpower] to support them. A year ago, we started wrapping up partnerships and building sales and support teams. We are ready to support enterprise customers. Now, the rate at which we get into new projects is growing."

Reasoning, meanwhile, attributes MySQL's code cleanliness to the open source review model.

Principally, Reasoning pointed to the fact that users don't just report defects but have the ability to track down the causes and contribute patches. Also, developers share code for peer reviews before it is contributed to an open source project's development tree.

"[The open source model allows] for source code to be worked on simultaneously by an unlimited number of geographically dispersed developers, without the need for those developers to be employed by the same software vendor," Reasoning said in a report. "This open source model encourages several activities that are not common in the development of commercial code."

As for the defects found in MySQL, 13 were remediated by the MySQL team, and it was determined that the eight others are highly unlikely to manifest themselves.

This is Reasoning's fourth code review of open source projects. In February, Reasoning compared the Linux TCP/IP stack against commercial stacks, and in July released reports on the Apache Web server and Tomcat application server. In each case, Reasoning determined that a mature open source project has fewer or a similar number of defects than commercial projects.

Dig Deeper on Linux servers

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.