Monday, 13 November 2006

Thank you, campers!

The first MySQL Camp is over. A whopping 223 registered attendees, most of whom were overwhelmingly active participants. Plenty of valuable feedback. Constant attention by Ken Jacobs (who assured the audience that "Oracle would never do anything to harm MySQL"), VP of Oracle. Superb Google hosting, facilities, food. Lots of beer by Proven Scaling. Fantastic sessions. What more could one hope for?

Thank you, Google! Thank you, Jay! Thank you, MySQL campers!

Saturday, 11 November 2006

MySQL Winter of Code

I am thankful for the plentiful feedback from MySQL Camp, on MySQL Winter of Code.

I started today's session at MySQL Camp by shortly describing our plans, starting by our insight that more coding happens during wintertime than in summer. Through MySQL Winter of Code, we want to encourage contributions to MySQL in all areas of the server. connectors and GUI tools.

There are three requirements for getting a Winter of Code grant:

  1. A signed Contributor License Agreement. Highlights:

    • You assign and transfer the copyright of your contribution to MySQL. In return you receive back a broad license to re-use and distribute your contribution.

    • You say that you coded and own the contribution, and are legally entitled to grant the assignment and license.

  2. A well-formed proposal

    • Format still to be determined

  3. Votes from fellow Community members

    • Community votes is the single most important criterion for being awarded a grant

In MySQL Winter of Code 2007, we especially encourage contributions to Connectors and Storage Engines.

  1. Ideas for Connectors related contributions

    • Improvements to (pure drivers for) Perl, Apache APR, Python, Ruby

    • Licensed using the license prevalent for the development environment (not necessarily GPL)

    • Technically well integrated into the development environment

    • New connectors to emerging environments

  2. Ideas for Storage Engine related contributions

    • The Mail Inbox Format Storage Engine
      • SELECT Subject, FileDate FROM emails WHERE emailfrom like "jay%" and Subject like '%camp%';

      • SELECT emailfrom, count(*) FROM emails GROUP BY emailfrom ORDER BY count(*) DESC LIMIT 10;

    • The File System Storage Engine for Windows, for Mac, for Linux
      • SELECT directory, filename, size FROM files WHERE size>10000000;

      • SELECT directory, sum(size) FROM files GROUP BY directory HAVING SUM(Size) >10000000 ORDER BY sum(size) DESC;

    • The Digital Picture (JPG / EXIF) Storage Engine
      • UPDATE jpgfiles SET Author='Kaj Arnö' ;

      • UPDATE jpgfiles SET Comments=CONCAT(Comments,' MySQL Camp Google') WHERE directory LIKE '%google%';

  3. Other contributions, of any type, related to MySQL Server, MySQL GUIs or Connectors
    • Full Text Search for CJK

    • MySQL GIS improvements

    • Your Idea Here

We look at contributions from MySQL Winter of Code 2007 to go into the still-nonexistent MySQL 5.1 Community Server. Later on, the contributions are eligible for the subsequent and also-still-nonexistent MySQL 5.2 Enterprise Server (remembering 5.2 might be numbered otherwise).

Now for your feedback from MySQL Camp.

A. Scope. You asked us:

  1. Is MySQL AB going to ask the community members for what new features they would want others to contribute, or

  2. Is MySQL AB going to ask the community members for what contributions they are proposing to implement themselves?

While we have been contemplating mostly item 2, your input has us now thinking about whether we can do both.

B. Visibility. You stressed that it's important to attract attention from various communities. Websites (Slashdot, Digg, O'Reilly), magazines (DDJ, any developer magazine), and in various geographies.

C. Professionalism. Do a business plan. Write an executive summary. Do a consistent plan, provide a vision, show direction. Get support from the most visible community members.

We are now putting our thinking caps on. Thanks for your valuable input, MySQL Camp participants!

MySQL Camp: mysqlnd native PHP driver

Small but good interaction with Bill Karwin of Zend, Taso Du Val of Fotolog and others during the MySQL Camp session on mysqlnd native PHP driver that I've blogged about earlier.

Ulf Wendel of MySQL will soon be posting a survey on the new API calls to mysqlnd, so stay tuned for that.

Friday, 10 November 2006

MySQL Camp: Measuring MySQL Community

At MySQL Camp (over 200 registered participants!), one of the first sessions was lead by Jay and themed "Measuring the MySQL Community".

The purpose of having MySQL community metrics is to know how MySQL is serving its community. At which rate is it growing? Or is it shrinking? Ideally, we would be able to say "in October 2006, the number of installations of MySQL grew by 3,2 % from 10 340 455 to 10 671 350 installations" and "the community activity index grew from 10,4 to 10,8".

There are built-in problems with this, though. While we know that we have over 10M yearly downloads, we don't know how many of those are in active use. And we know many get their MySQL packages from distributions.

Sheeri Kritzer proposed making a the server "scorebord" public. Basically, SHOW STATUS information would be aggregated as a service somewhere on MySQL Forge. "In November 2006, 417 petabyte was stored worldwide in MySQL databases (up 10,4 % from october). During the same month, 57G queries were launched against MySQL databases (up 9,4 %)."

This would require an opt-in type of "phone home" service from MySQL or some of the tools using MySQL (GUIs) to ping MySQL.

Jonathan Laventhof supported the idea and pointed out the necessity of a good privacy policy. Moreover, he proposed the new positive measure of "time to goat" -- the time from downloading MySQL to the first productive use of it, such as a blog entry on goats.

There's a great spirit here at the MySQL Camp. I'm looking forward to the upcoming sessions!