Google and MySQL are close to finalizing a deal that could find the open-source database vendor incorporating powerful features created by the search giant into future versions of the popular database.

On Monday, Google publicly released the source code for several custom features it had built in-house to enhance the performance and reliability of its search engine. The add-ons were released via the General Public License (GPL).

Google's announcement, done without MySQL on the eve of MySQL's annual worldwide conference, appeared to be a subtle attempt to put pressure on MySQL to add the features to the official version of the software, something the company has until recently been loath to do.

Since then, sources say Google has signed a Contributor License Agreement (CLA), a key legal document required by MySQL to accept source code from outside companies or developers and port it to its popular database, reportedly used in 11 million servers worldwide.

Google is widely believed to be the largest MySQL user in the world, with hundreds or even thousands of MySQL servers running in data centers around the world.

What remains to be worked out are the exact features that Google will transfer to MySQL and the compensation MySQL will offer in return, which could range from symbolic gifts such as T-shirts to monies up to hundreds of thousands of dollars, said Steve Curry, a MySQL spokesman. Curry declined to confirm the status of the deal.

A schizophrenic approach?

Most open-source software is created jointly by programmers working in their spare time as well as by commercial firms that typically make money by offering paid support for the product.

The best example is the Linux operating system. Development of the core kernel is overseen by Linus Torvalds, a volunteer, who accepts contributions from developers ranging from Fortune 500 companies such as IBM and Oracle all the way, in theory, to student hackers.

By contrast, MySQL has long had a "single-entity development model," according to Stephen O'Grady, a Denver-based analyst at RedMonk Inc.

While MySQL has welcomed bug fixes submitted by the community and even encouraged third-party software companies to build data storage engines that plugged into MySQL and replaced MySQL's own default engines, it has rarely accepted add-ons to the core database from outsiders, an attitude that O'Grady called "schizophrenic."

That has prevented MySQL from adding desired new features in what some users, including Google, consider a timely fashion.

"We can do things faster than MySQL, so we decided we just couldn't wait," said Mark Callaghan, the software developer at Google who posted the source code for the MySQL add-ons. He was speaking Thursday at the MySQL conference.

The perils of community

The problem for MySQL, according to O'Grady, lies in its dual licensing model, which lets users take the software under either the open-source GPL license or a full commercial license. Some of MySQL's customers don't want to use the GPL because it requires them to donate any changes they make to the software back to the community.

This has made it tricky for commercial software companies, for instance, that have tweaked and embedded a version of MySQL inside their applications.

To get around that, MySQL could sell its database using a regular commercial license. However, that puts pressure on MySQL to ensure that none of the code in the product is plagiarized from another application or otherwise infringes on any copyrights.

The easiest way for MySQL and any firm to do this is to employ the developers writing the code. Even buying the code from outside developers can be tricky and raises concerns among end users of open-source software that they may be unwittingly violating copyrights. That's a drum that Microsoft has been beating lately in respect to Linux.

An attitude adjustment

Zack Urlocker, vice president of marketing at MySQL, acknowledged the company has historically made it hard for outside code to make its way into the database.

But, he said, the company has tried to reform its attitude, which was turning off some members of its community. For instance, MySQL rewrote its CLA last year to make it easier to understand and less intimidating, Urlocker said.

MySQL is actually "really excited about Google's code contribution," he said.

The features include transactional replication for slave databases, semisynchronous replication, mirrored binlogs and fast and automated fail-over. Collectively, they let each Google database administrator manage "hundreds of database servers" and still have "time to solve more complex problems," Callaghan said.

The features were written for MySQL 4.0, which Google continues to run in-house despite the release of MySQL 5.0 a year and a half ago.

"We don't upgrade as much as other people," Callaghan said.

Some of the features, or similar ones, acknowledged Callaghan, have been added by MySQL in the current 5.0 or are in the works for Version 5.1, due by year's end, or Version 6.0.

Porting the Google-developed features over to Version 5.0 or beyond shouldn't be a problem, according to both parties. Not that that would necessarily accelerate Google's migration from MySQL 4.0.

"We have a lot of queries that don't parse in MySQL 5.0," Callaghan said. "We know that to get new features, we have to upgrade MySQL. But migrating is hard."