Maatkit version 2725 released
This release of Maatkit is basically all about mk-log-parser, our new log analysis tool. Daniel and I have been working hard on it all month, adding killer new features like –review, fixing tons of bugs, and making it twice as fast. I believe it’s far and away the best slow-log analysis tool in existence, both in terms of functionality and quality. (Do any of the other tools even have test suites…?) But you should take it for a spin and see yourself. If you run it into something it won’t parse, or find anything else wrong, please use the Google Code project and the mailing list (not the comments on this blog!) for support.
Major changes:
* Added --analyze option to combine analysis and --review (issue 162). * Added --fingerprints (-f) option (issue 160). * Trying to take log of 0 caused a crash (issue 141). * Improved performance of log parsing and fingerprinting about 2x (issue 137). * Slow log parsing was buggy (issue 136 and many smaller issues discovered). * Converted a lot of hardcoded things into dynamically built functions. * Added more information to the default output and reformatted it. * Incompatible changes to fingerprint; old reviews will lose their history. * Much enhanced --review functionality. * Default --top to 95% to analyze the top 95% of the load (issue 171).
That’s just the major stuff. Note that it’s in very active development, and that will probably continue. However, the documentation is now up-to-date and pretty complete.
Big thanks to Pythian, who together with Percona have co-sponsored some of the –review improvements. In fact, the entire –review functionality was born from a combination of Sheeri’s ideas, ideas from Percona consultants, and perhaps a few others who don’t get credit where it is due ;).
Does MySQL really have an open-source business model?
I’ve been thinking about the business of what’s variously come to be called commercial open-source and enterprise open-source. I’m interested in the gestalt — the product, development processes, marketing, licensing and so on.
MySQL has tried many different ways to earn money. These include dual licensing, support subscriptions, a knowledgebase, consulting, an Enterprise/Community split, trying to make parts of the server closed-source, making tools in a split community/premium version, building functionality externally in closed-source software where they can charge for it, and most recently creating three tiers of functionality for the MySQL 5.1 server. And these are only the highlights — MySQL has courageously tried a lot of different models, far more than the blogosphere regularly acknowledges.
But are any of them really open-source business models? I have posited before that the MySQL server is not really open-source. I’ve come to believe that the MySQL business model is not an open-source one, either. I think all of these different approaches are steps towards a more closed-source business model.
Why is this happening? I believe that the sales department is the strongest influence in this direction. I’ve formed this opinion over the last couple of years, in part through many conversations with people on both the inside and outside of MySQL. And more recently, as a Percona employee I have been able to talk with many people who have negotiated with the MySQL sales team and then opted not to buy from them. They sometimes volunteer information on what it’s like and why they’ve come to talk to Percona instead.
I’ve also heard from insiders that the familiar sales tactics don’t work for MySQL. I believe this is because they rely on ways to gain leverage in the sales negotiations (e.g. lock-in, bundling, upselling, withholding). Many of these levers find no fulcrum in truly open-source software. The story is that the sales team came back to the rest of the company and said you have to give us something we can sell. This isn’t working.
As I see it, the changes in MySQL’s business models over the last few years have produced a self-reinforcing cycle, something like this:
- Experienced customers who understand the merits of open-source software recognize that MySQL has trended towards closed-source and isn’t really offering a compelling open-source value. They don’t buy, and…
- … MySQL trends further towards closed-source and tries to sell that; as a result, customers new to open-source software are not educated about its true value.
So instead of making MySQL more open-source and evangelizing that, MySQL might have left themselves few options other than to fall back to closed-source models. And that virtually requires closed-source products to sell. You can call it “feature differentiation,” or “value add,” or even “crippleware” (and Monty Widenius himself has done that) — the fact is it’s not open-source MySQL is trying to sell. Their offerings that are closest to being open-source are not for sale.
At the sales level, it appears to be working. I’ve heard that many more people are buying than before. I don’t doubt that. This fact is touted as proof that MySQL is successfully building an open-source software business, and the pundits love to applaud it, even urging MySQL to take a harder line. I suppose they don’t see the irony of saying that the open-source business model is perfected by becoming closed-source.
I don’t identify with this stance. I would prefer to see the open-source philosophy spread from the company to the customers and community, rather than allowing the customers and sales people to drive closed-source values back through the gate.
Unfortunately, I don’t think MySQL will not do an about-face, because the market for real open-source simply isn’t as big as MySQL wants. If your goal is to make money first and foremost,[1] instead of creating value for customers, you can do that better with closed-source software. And I think that as a result, MySQL might be working against itself, because open-source and Free Software are fundamentally about creating value for the users. If the users and the customers are the same people, there’s a conflict of interest: the software wants to create value, but the business wants to create revenue.
The good news is that MySQL is Free Software, so it does not simply live inside of MySQL or Sun. Free Software is a meritocracy; there’s equal opportunity for all of us, and in that sense Sun/MySQL are offered the same chance as the rest of us to serve this community. No one is in a position of ownership or control (remember, Sun purchased MySQL the company, not MySQL the database). We are all called to be stewards. I believe that if Sun/MySQL accept this role, MySQL the database and MySQL the company will prosper together; if not, MySQL the database will find a new home. The business of MySQL is associated with MySQL the database through freedom and choice, not bound through force.
I believe that a closed-source business model around MySQL will ultimately lose momentum, and those who work to set MySQL free will earn the community’s trust and support. I realize that I’m contradicting all the experienced people who really know a lot about business, and I’m happy to let the passing of time correct me if I’m wrong.
These are interesting times. None of this is without precedent, yet there is so much we don’t know. I think it’s fine to keep trying different approaches and see what works. I’ve chosen my position based on my principles and beliefs, and I’ve tried to align myself with what I see as the Tao of Free Software, if you will. I’ll be continuing to observe and participate, and re-evaluate my position if necessary.
[1]For the record, I have no problem with a company whose goal is first and foremost to make money.
Today I recommended MySQL 5.1
Today I recommended that a customer begin using MySQL 5.1 for development of their new product. There is virtually no risk of doing this, and in fact, the risk of not doing so is quite material. Upgrading the database later would be silly when you could start using it now and find out how best to work with it. Notice that the single criterion I’m mentioning is risk, not features.
I just wanted to mention this in case it appears that I’m anti-5.1. I’m not. I’m all for it when it’s appropriate.
For their existing product, which will end-of-life when the new one is done, I suggested that they just upgrade to the latest stable Percona build. They’re on 5.0.37, and a lot of bugs have been fixed since then. And they need to measure what the application is doing, and the Percona builds give significantly more insight into that.
