An event truly fitting an “open world” — I will be speaking at Oracle Open World.
How does a wild-mannered MySQL DBA like me get to speak at an Oracle conference? Well, after I received the MySQL Community Award two years in a row, Dan Norris contacted me, and encouraged me to submit a proposal with him on how to contribute to the community.
Oracle has a formal program for recognizing community members at two levels: the Oracle ACE Director, and the Oracle ACE. An Oracle ACE Director is expected to make a 12-month commitment to working with the community, while an Oracle ACE is bestowed upon folks to recognize their volunteer efforts in the past. More information about the program can be found on the Oracle ACE Program FAQ.
Dan Norris is himself an Oracle ACE Director, and I think it is a good sign that he reached out to the MySQL community to help the Oracle community. As database administrators and developers, I think we all have much to learn from each other, and I hope this cross-pollination will continue.
If anyone attending Oracle OpenWorld, (or who happens to be in San Francisco from Sunday, September 21st through Thursday, September 26th) wants to meet me or have dinner with me, drop me a line!
An event truly fitting an “open world” — I will be speaking at Oracle Open World.
How does a wild-mannered MySQL DBA like me get to speak at an Oracle conference? Well, after I received the MySQL Community Award two years in a row, Dan Norris contacted me, and encouraged me to submit a proposal with him on how to contribute to the community.
Oracle has a formal program for recognizing community members at two levels: the Oracle ACE Director, and the Oracle ACE. An Oracle ACE Director is expected to make a 12-month commitment to working with the community, while an Oracle ACE is bestowed upon folks to recognize their volunteer efforts in the past. More information about the program can be found on the Oracle ACE Program FAQ.
Dan Norris is himself an Oracle ACE Director, and I think it is a good sign that he reached out to the MySQL community to help the Oracle community. As database administrators and developers, I think we all have much to learn from each other, and I hope this cross-pollination will continue.
If anyone attending Oracle OpenWorld, (or who happens to be in San Francisco from Sunday, September 21st through Thursday, September 26th) wants to meet me or have dinner with me, drop me a line!
The MySQL Community version is different in theory from the Enterprise version in relation to the following points:
0) It’s free
1) It has community patches
2) It is released less often
3) It is tested less strictly
In reality, the first two differences are not applicable — the binaries and source code for Enterprise can be freely and legally downloaded at http://mirror.provenscaling.com/mysql/enterprise/. The process for adding community patches to the MySQL source code has not been changed sufficiently to be able to actually add community patches and encourage more community development.
I understand that MySQL (and now Sun) needs to make money. I also understand that development takes a lot of effort, and seeing an ROI is important. The Community/Enterprise split was designed to have tradeoffs on both sides. However, currently there is no benefit to running the Community version.
While I would love to magically make community contributions easy to put into a Community version of MySQL, logistically that’s not possible right now. I do have a solution that is possible right now, that takes very few additional resources, and is something I think will be acceptable to the MySQL community and to Sun — assuming the MySQL executives can admit that the Community version has not been working out.
I propose to make the Community release an older version of an Enterprise release. In this way, Enterprise users still get value in having bugs fixed and features added first, and Community users can choose to upgrade if they want the latest features. There is very little overhead in having Community releases, with no overhead in having to manage two trees/branches/whatever from both a code and build standpoint. Maintaining the promise of immediate security releases, 4 code releases per year and 2 binary releases per year becomes trivial.
The question is, of course, how far back the Community version should go. And should there be a delay (ie, release the January Enterprise version as the June Community version) or not?
I recommend that security releases be immediate (as they currently are) and for all other releases there should be a delay of at least 6 months, perhaps 1 year. Certainly that’s enough of an incentive to get customers to upgrade without having folks feel like the Community ersion is crippleware.
What do folks think of this as a solution to the Enterprise/Community split dilemma?
The MySQL Community version is different in theory from the Enterprise version in relation to the following points:
0) It’s free
1) It has community patches
2) It is released less often
3) It is tested less strictly
In reality, the first two differences are not applicable — the binaries and source code for Enterprise can be freely and legally downloaded at http://mirror.provenscaling.com/mysql/enterprise/. The process for adding community patches to the MySQL source code has not been changed sufficiently to be able to actually add community patches and encourage more community development.
I understand that MySQL (and now Sun) needs to make money. I also understand that development takes a lot of effort, and seeing an ROI is important. The Community/Enterprise split was designed to have tradeoffs on both sides. However, currently there is no benefit to running the Community version.
While I would love to magically make community contributions easy to put into a Community version of MySQL, logistically that’s not possible right now. I do have a solution that is possible right now, that takes very few additional resources, and is something I think will be acceptable to the MySQL community and to Sun — assuming the MySQL executives can admit that the Community version has not been working out.
I propose to make the Community release an older version of an Enterprise release. In this way, Enterprise users still get value in having bugs fixed and features added first, and Community users can choose to upgrade if they want the latest features. There is very little overhead in having Community releases, with no overhead in having to manage two trees/branches/whatever from both a code and build standpoint. Maintaining the promise of immediate security releases, 4 code releases per year and 2 binary releases per year becomes trivial.
The question is, of course, how far back the Community version should go. And should there be a delay (ie, release the January Enterprise version as the June Community version) or not?
I recommend that security releases be immediate (as they currently are) and for all other releases there should be a delay of at least 6 months, perhaps 1 year. Certainly that’s enough of an incentive to get customers to upgrade without having folks feel like the Community ersion is crippleware.
What do folks think of this as a solution to the Enterprise/Community split dilemma?
Exceptional Software Explained: Embrace Error, by Robert “r0ml” Lefkowitz of Asurion. One of the contenders for “best open source comedian”, r0ml delivers a humorous look at the past and future of software development models. This keynote was delivered at OSCon 2008 on Tuesday evening.
Play this 20 minute video directly in your browser at http://technocation.org/node/577/play or download the 286 Mb file directly at http://technocation.org/node/577/download.
Exceptional Software Explained: Embrace Error, by Robert “r0ml” Lefkowitz of Asurion. One of the contenders for “best open source comedian”, r0ml delivers a humorous look at the past and future of software development models. This keynote was delivered at OSCon 2008 on Tuesday evening.
Play this 20 minute video directly in your browser at http://technocation.org/node/577/play or download the 286 Mb file directly at http://technocation.org/node/577/download.
Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.
Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.
Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.
Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.
Well, nobody from Sun showed up in person, but we got a great rendition of “Where were you when you heard THE NEWS that Sun bought MySQL?” from Mark Rubin, the MySQL Sales Engineer for the New England area, and from Giuseppe Maxia, who revealed something very interesting and riveting.
From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”
The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB
The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.
Well, nobody from Sun showed up in person, but we got a great rendition of “Where were you when you heard THE NEWS that Sun bought MySQL?” from Mark Rubin, the MySQL Sales Engineer for the New England area, and from Giuseppe Maxia, who revealed something very interesting and riveting.
From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”
The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB
The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.
The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”
Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.
Now, most of my exposure is within the MySQL Community, so if folks could pass the links to the video along to other communities, that would be great.
(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)
The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”
Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.
Now, most of my exposure is within the MySQL Community, so if folks could pass the links to the video along to other communities, that would be great.
(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)
Liveblogging from OSCon 2008: Going Open Source, The 20 Most Important Things to Do – by Martin Aschoff of AGNITAS AS.
Firstly I have to extend a heartfelt “thank you” to Sun Microsystems and Monty Widenius, as I would not have been able to attend OSCon without their assistance.
AGNITAS AS makes e-marketing software, 25 employees, no venture capital, from Munich, Germany. The municipality of Munich runs entirely on Linux desktops and on infrastructures with open source software.
This session is about the nuts and bolts of an open source company. Aschoff kept a journal of the key learnings of the company when it went open source, and has become a board member of the Open Source Business Association in Europe.
Before deciding on going open source:
(more…)
Liveblogging from OSCon 2008: Going Open Source, The 20 Most Important Things to Do – by Martin Aschoff of AGNITAS AS.
Firstly I have to extend a heartfelt “thank you” to Sun Microsystems and Monty Widenius, as I would not have been able to attend OSCon without their assistance.
AGNITAS AS makes e-marketing software, 25 employees, no venture capital, from Munich, Germany. The municipality of Munich runs entirely on Linux desktops and on infrastructures with open source software.
This session is about the nuts and bolts of an open source company. Aschoff kept a journal of the key learnings of the company when it went open source, and has become a board member of the Open Source Business Association in Europe.
Before deciding on going open source:
(more…)
Yesterday I had a good conversation with Monty Widenius (a MySQL founder) about MySQL 5.1. Specifically, about the fact that MySQL 5.1 is not a GA (generally available) release.
My impression, which was wrong, was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.
That’s not the case at all.
(more…)
Yesterday I had a good conversation with Monty Widenius (a MySQL founder) about MySQL 5.1. Specifically, about the fact that MySQL 5.1 is not a GA (generally available) release.
My impression, which was wrong, was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.
That’s not the case at all.
(more…)
This week, database blogs seemed to talk about conforming to stereotypes as well as breaking them.
Fulfilling the stereotype of Microsoft software being unsecure, Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.
Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.
The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.
Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.
Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.
But wait! There are some more updates!
(more…)
This week, database blogs seemed to talk about conforming to stereotypes as well as breaking them.
Fulfilling the stereotype of Microsoft software being unsecure, Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.
Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.
The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.
Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.
Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.
But wait! There are some more updates!
(more…)
By “Good SQL Querying”, I am not referring to “how to make your queries more perfomant.” I am about to go on a mini-rant about how to make readable and self-documenting SQL queries.
One practice that will get me instantly going on a rant is using a comma join. There is NO reason to do the following:
-- uses the sakila sample database
SELECT first_name, last_name, address
FROM customer,address;
What kind of join did the original author intend? A CROSS JOIN? Or did they really want an INNER JOIN and forget the WHERE clause?
The answer: you do not know for sure; you can only guess. Had the query been
SELECT first_name,last_name,address
FROM customer INNER JOIN address;
you would know that the author intended an INNER JOIN; had the query been
SELECT first_name,last_name,address
FROM customer CROSS JOIN address;
you would know that the author intended a CROSS JOIN. I advocate using INNER JOIN instead of JOIN because like the comma, JOIN is ambiguous.
For full disclosure, the MySQL EXPLAIN plan is exact same for the above queries. The difference is purely semantic, but I think it a very important difference, because it makes the query author’s intentions clear. There are issues with the comma join not having the same precedence as INNER JOIN, but that is for more complex queries. To wit:
SELECT first_name,last_name,address
FROM customer, address INNER JOIN city;
will actually do address INNER JOIN city
first, then join with customer
. This was changed to be more like the SQL standard, so it’s only in MySQL 5.0.12 and higher that it acts this way.
My feeling is that a comma join should NEVER be used in MySQL. There is no such thing as a “comma join”, really what you mean is an “inner join” or a “left/right join” or “cross join” (or “natural join”).
I know that naysayers will say that
SELECT first_name,last_name,address
FROM customer INNER JOIN address;
actually does a CROSS JOIN (Cartesian product), so it is folly to rely only on the name of the join. And I agree. However, if you name your joins appropriately for what you want and intend them to be, it is much easier to catch mistakes.
And while we are on the topic of good SQL query techniques…..I would like to rant a bit about join criteria. (more…)
By “Good SQL Querying”, I am not referring to “how to make your queries more perfomant.” I am about to go on a mini-rant about how to make readable and self-documenting SQL queries.
One practice that will get me instantly going on a rant is using a comma join. There is NO reason to do the following:
-- uses the sakila sample database
SELECT first_name, last_name, address
FROM customer,address;
What kind of join did the original author intend? A CROSS JOIN? Or did they really want an INNER JOIN and forget the WHERE clause?
The answer: you do not know for sure; you can only guess. Had the query been
SELECT first_name,last_name,address
FROM customer INNER JOIN address;
you would know that the author intended an INNER JOIN; had the query been
SELECT first_name,last_name,address
FROM customer CROSS JOIN address;
you would know that the author intended a CROSS JOIN. I advocate using INNER JOIN instead of JOIN because like the comma, JOIN is ambiguous.
For full disclosure, the MySQL EXPLAIN plan is exact same for the above queries. The difference is purely semantic, but I think it a very important difference, because it makes the query author’s intentions clear. There are issues with the comma join not having the same precedence as INNER JOIN, but that is for more complex queries. To wit:
SELECT first_name,last_name,address
FROM customer, address INNER JOIN city;
will actually do address INNER JOIN city
first, then join with customer
. This was changed to be more like the SQL standard, so it’s only in MySQL 5.0.12 and higher that it acts this way.
My feeling is that a comma join should NEVER be used in MySQL. There is no such thing as a “comma join”, really what you mean is an “inner join” or a “left/right join” or “cross join” (or “natural join”).
I know that naysayers will say that
SELECT first_name,last_name,address
FROM customer INNER JOIN address;
actually does a CROSS JOIN (Cartesian product), so it is folly to rely only on the name of the join. And I agree. However, if you name your joins appropriately for what you want and intend them to be, it is much easier to catch mistakes.
And while we are on the topic of good SQL query techniques…..I would like to rant a bit about join criteria. (more…)