Category Archives: videos

2013 SkySQL and MariaDB Solutions Videos Are Online!

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

It’s true — http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1&hp.

“What does this mean for MySQL?”

Lots of people are going to be proclaiming that it is the death of MySQL, this web as they did when Oracle bought InnoDB.

But it is not. MySQL and Oracle may both be databases, but they are not competitors. To say they are competitors is like saying that an upscale bar and the corner convenience store are competitors because you can get soft drinks, coffee and tea at both. There are many applications for which Oracle is the appropriate solution, and there’s no reason to even try to see if MySQL can do the same job. Similarly there are many applications for which MySQL is the clearly appropriate solution and there’s no need to even consider Oracle.

So, in the end, what this acquisition means to me is that Sun’s going to get a little more of a boost — stock prices had been sinking for a while now, and Oracle will get some good hardware, which seems to be their latest foray.

EDIT (4/20/2009 10:09 pm PDT) — Just adding another reason I believe Oracle won’t kill MySQL — they make a ton of $$ off InnoDB hot backup…

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

It’s true — http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1&hp.

“What does this mean for MySQL?”

Lots of people are going to be proclaiming that it is the death of MySQL, this web as they did when Oracle bought InnoDB.

But it is not. MySQL and Oracle may both be databases, but they are not competitors. To say they are competitors is like saying that an upscale bar and the corner convenience store are competitors because you can get soft drinks, coffee and tea at both. There are many applications for which Oracle is the appropriate solution, and there’s no reason to even try to see if MySQL can do the same job. Similarly there are many applications for which MySQL is the clearly appropriate solution and there’s no need to even consider Oracle.

So, in the end, what this acquisition means to me is that Sun’s going to get a little more of a boost — stock prices had been sinking for a while now, and Oracle will get some good hardware, which seems to be their latest foray.

EDIT (4/20/2009 10:09 pm PDT) — Just adding another reason I believe Oracle won’t kill MySQL — they make a ton of $$ off InnoDB hot backup…

By now many folks know that :

People who are interested in forking the server — and potentially interested in creating what is in effect separate communities of their own — should probably develop their own docs for their own forks.

(There is a cost involved here, buy information pills I know. However, capsule it should be a cost worth paying if developers of forks really believe in their work. MySQL AB certainly paid that cost in developing the docs while it had already made the code itself freely available under GPL. So, sovaldi sale the playing ground among all forks, etc., and including MySQL itself, is actually quite level.)

MySQL AB paid the cost in developing the *software* as well. Why is it that the cost of writing documentation from scratch is acceptable, but the cost of writing the *software* from scratch isn’t?

I totally understand the concern that if people have the same rights to fork the documentation as they do to fork the code, confusion may arise. Many do not agree that the risk is high enough to warrant keeping the documentation “closed”. However, even if that is the case, Section 2 of GPLv2 states:

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

So, if Sun/MySQL[/Oracle/whatever] was *really* worried about confusion, they would publish the documentation with a GPLv2 license, and then have their legal department send cease and desist letters to anyone who modified the documentation without having a prominent notice stating that they have modified the documentation.

My question to readers is: “If the Oracle Corporation decided to close the source of MySQL, would anyone notice?”

Your first thought may be, “I was *just* reading a blog post that talked about more community contributions being accepted!” However, if you actually search around for the details of the community contributions, you will note that, as in the past, it is still taking a lot of time to QA the contributions, and even once contributions are accepted, they are not put in a release we will see any time soon. For an example, see my comment to that post, where I link to documents showing that the only piece of community code that was specific enough to find will be put into MySQL version 7.1.

Hopefully, as announced at the Partner Meeting at the recent MySQL User Conference, the roadmap won’t be frozen as it is now, and features can get into a release if they are complete (including testing and QA) within a certain timeframe.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

In record time, viagra 60mg all 11 videos that were taken at OpenSQLCamp Europe are online.

For those who missed the sessions, decease or just want to relive the fun!

Almost all the sessions were filmed; regrettably Darren Cesar’s Securich – MySQL user administration and security made easy! and Stephane Combaudon’s Minimizing data access with covering indexes were not.

The YouTube videos have the descriptions and resources from the official conference pages, and links to pages. If there is more information to add (for example, the slides from a talk are now online), or if you spot an error, please feel free to add a comment on the YouTube video, or as a comment to this blog post.

Individual presentations:

Enjoy!

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

In record time, viagra 60mg all 11 videos that were taken at OpenSQLCamp Europe are online.

For those who missed the sessions, decease or just want to relive the fun!

Almost all the sessions were filmed; regrettably Darren Cesar’s Securich – MySQL user administration and security made easy! and Stephane Combaudon’s Minimizing data access with covering indexes were not.

The YouTube videos have the descriptions and resources from the official conference pages, and links to pages. If there is more information to add (for example, the slides from a talk are now online), or if you spot an error, please feel free to add a comment on the YouTube video, or as a comment to this blog post.

Individual presentations:

Enjoy!

A broken VIEW was caused by the view’s definer being non-existent. In this particular system, youth health backups are done by replicating all the machines (production, malady development, this web test, etc) to one server and doing cold physical backups off that server, which currently has 12 instances running.

So in order to find on what machine the user might still be defined, I went to the backup server. All the data directories are in one path, ie:

instance 1 has a datadir of /data/mysql/instance1
instance 2 has a datadir of /data/mysql/instance2

Now, the unix tool strings can be used against many types of files. In particular, though, you can use strings on the mysql/user.MYD file to see the username, host, and password hash. (note that strings only shows strings longer than 3 characters, so if your host or username is 3 characters or less, it will not show up in the output of strings. You can change this with the -n option to strings).

$ cd /data/mysql/
$ strings -f */mysql/user.MYD | grep username
instance5/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
instance7/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ 

While writing this tidbit up, I realized I could have easily run grep and gotten the same results:

$ grep username */mysql/user.MYD
Binary file instance5/mysql/user.MYD matches
Binary file instance7/mysql/user.MYD matches

So do not underestimate the power of basic tools such as strings and grep. They can really help you! (I often use strings mysql/user.MYD to see if a particular mysql user has been set up, especially when I cannot seem to login. This way I can know whether or not I am typing an incorrect password, or if the user just does not exist at all.)

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

In record time, viagra 60mg all 11 videos that were taken at OpenSQLCamp Europe are online.

For those who missed the sessions, decease or just want to relive the fun!

Almost all the sessions were filmed; regrettably Darren Cesar’s Securich – MySQL user administration and security made easy! and Stephane Combaudon’s Minimizing data access with covering indexes were not.

The YouTube videos have the descriptions and resources from the official conference pages, and links to pages. If there is more information to add (for example, the slides from a talk are now online), or if you spot an error, please feel free to add a comment on the YouTube video, or as a comment to this blog post.

Individual presentations:

Enjoy!

A broken VIEW was caused by the view’s definer being non-existent. In this particular system, youth health backups are done by replicating all the machines (production, malady development, this web test, etc) to one server and doing cold physical backups off that server, which currently has 12 instances running.

So in order to find on what machine the user might still be defined, I went to the backup server. All the data directories are in one path, ie:

instance 1 has a datadir of /data/mysql/instance1
instance 2 has a datadir of /data/mysql/instance2

Now, the unix tool strings can be used against many types of files. In particular, though, you can use strings on the mysql/user.MYD file to see the username, host, and password hash. (note that strings only shows strings longer than 3 characters, so if your host or username is 3 characters or less, it will not show up in the output of strings. You can change this with the -n option to strings).

$ cd /data/mysql/
$ strings -f */mysql/user.MYD | grep username
instance5/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
instance7/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ 

While writing this tidbit up, I realized I could have easily run grep and gotten the same results:

$ grep username */mysql/user.MYD
Binary file instance5/mysql/user.MYD matches
Binary file instance7/mysql/user.MYD matches

So do not underestimate the power of basic tools such as strings and grep. They can really help you! (I often use strings mysql/user.MYD to see if a particular mysql user has been set up, especially when I cannot seem to login. This way I can know whether or not I am typing an incorrect password, or if the user just does not exist at all.)

Mike Hogan, somnology CEO of ScaleDB spoke at the Boston MySQL User Group in September 2009:

ScaleDB is a storage engine for MySQL that delivers shared-disk clustering. It has been described as the Oracle RAC of MySQL. Using ScaleDB, .

Slides are online (and downloadable) at http://www.slideshare.net/Sheeri/scale-db-preso-for-boston-my-sql-meetup-92009

Watch the video online at http://www.youtube.com/watch?v=emu2WfNx4KA or directly embedded here:

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

In record time, viagra 60mg all 11 videos that were taken at OpenSQLCamp Europe are online.

For those who missed the sessions, decease or just want to relive the fun!

Almost all the sessions were filmed; regrettably Darren Cesar’s Securich – MySQL user administration and security made easy! and Stephane Combaudon’s Minimizing data access with covering indexes were not.

The YouTube videos have the descriptions and resources from the official conference pages, and links to pages. If there is more information to add (for example, the slides from a talk are now online), or if you spot an error, please feel free to add a comment on the YouTube video, or as a comment to this blog post.

Individual presentations:

Enjoy!

A broken VIEW was caused by the view’s definer being non-existent. In this particular system, youth health backups are done by replicating all the machines (production, malady development, this web test, etc) to one server and doing cold physical backups off that server, which currently has 12 instances running.

So in order to find on what machine the user might still be defined, I went to the backup server. All the data directories are in one path, ie:

instance 1 has a datadir of /data/mysql/instance1
instance 2 has a datadir of /data/mysql/instance2

Now, the unix tool strings can be used against many types of files. In particular, though, you can use strings on the mysql/user.MYD file to see the username, host, and password hash. (note that strings only shows strings longer than 3 characters, so if your host or username is 3 characters or less, it will not show up in the output of strings. You can change this with the -n option to strings).

$ cd /data/mysql/
$ strings -f */mysql/user.MYD | grep username
instance5/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
instance7/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ 

While writing this tidbit up, I realized I could have easily run grep and gotten the same results:

$ grep username */mysql/user.MYD
Binary file instance5/mysql/user.MYD matches
Binary file instance7/mysql/user.MYD matches

So do not underestimate the power of basic tools such as strings and grep. They can really help you! (I often use strings mysql/user.MYD to see if a particular mysql user has been set up, especially when I cannot seem to login. This way I can know whether or not I am typing an incorrect password, or if the user just does not exist at all.)

Mike Hogan, somnology CEO of ScaleDB spoke at the Boston MySQL User Group in September 2009:

ScaleDB is a storage engine for MySQL that delivers shared-disk clustering. It has been described as the Oracle RAC of MySQL. Using ScaleDB, .

Slides are online (and downloadable) at http://www.slideshare.net/Sheeri/scale-db-preso-for-boston-my-sql-meetup-92009

Watch the video online at http://www.youtube.com/watch?v=emu2WfNx4KA or directly embedded here:

I spent Friday examining the systems for a more traditional consulting gig (in case you did not know, here has offered more traditional consulting and emergency services in addition to our remote DBA offering for our entire 12 year history). It is a familiar story to many people — the database performance was unacceptable.

The company had a few log tables that had huge amounts of inserts and foreign keys, drug so they used InnoDB. Unfortunately, stomach they also used a GUID as a primary key (which is getting more and more common these days, but long primary keys with InnoDB slow down INSERT, UPDATE and DELETE commands a great deal) — varchar(32) and utf8.

That’s right — their primary key for many of these tables was 96 bytes long (32 characters * 3 bytes per character), and as an InnoDB table, the primary key is clustered with every other index. One of the more frequently used tables had 8 indexes other than the PRIMARY KEY — 7 were indexes on varchar(32) fields, the other was on an int(11) field (signed integer).

The query load on the server was 99% writes, 1% reads. The log tables only had rows inserted, not deleted or updated. Thus, we offered a few different solutions (in no particular order):

1) Use a BLACKHOLE table on the master and replicate to a slave server. This would make the INSERTs to the master fast, though the slave would lag behind. The slave could be changed to MyISAM or ARCHIVE or some other storage engine.

2) Use MyISAM on the master and slave. This was the solution we went to, because the log tables could be re-created with no data and moved into place, and the loss of foreign keys was not a big deal, since the application checked for them anyway. ARCHIVE could also be used, it is faster than MyISAM on inserts because it only allows one index, the PRIMARY KEY. concurrent_insert was set at the default of 1, but we changed it to 2 just in case there was an errant UPDATE or DELETE causing a gap in the MyISAM table.

3) Add a PRIMARY KEY that is AUTO_INCREMENT, keeping the GUID a UNIQUE KEY. This would speed up the writes without sacrificing any data. This can be combined with dropping unnecessary foreign keys to make the inserts faster.

4) Move the log tables to a different machine entirely. This would require the application to have two different database handlers.

5) Use INSERT DELAYED into the logging tables.

We discussed these scenarios and the pros and cons, and eventually we chose to do #2, which we could do right away, and indeed, we had an immediate positive impact. Almost all the unnacceptable performance went away.

We were also able to audit the system and provide several good recommendations for ways they can improve their system. It is exciting for me to be able to help people out in a very tangible way — often we do not see some of the really crazy problems that affect few people (such as slave lag getting further and further behind) because our remote DBA clients have the benefit of ongoing help from us, and we generally find the smaller degradations in performance before they become a large issue.

Being able to spend a few hours with a new environment and really help them out was extremely fulfilling for me. I love that MySQL has many different options (and there are likely more that I did not think of) that all would work to achieve better performance. I think people like to have a choice, too, so they do not feel they were forced to do something they did not want to do. Especially when there are solutions on both the DBA and developer side.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

Yesterday, unhealthy Pythian’s partnership with Sun, prescription and our new “MySQL Adoption Accelerator Package”. I am not a marketing guru, rehabilitation but I can tell you what we the package means in terms of new work that the MySQL teams have been doing.

Basically, the MySQL Adoption Accelerator Package combines customized training with a comprehensive audit of systems. The name “Adoption Accelerator” makes it sound like it’s only for new applications that are almost ready to go live. What the program actually does is have us evaluate your systems, and intensively train you in the areas you want and need. The program is designed to suit all your needs, whether it’s teaching you about one topic (say, query optimization) or an entire range of topics, from Architecture to ZFS (special issues with running MySQL on ZFS, that is, but that did not fit a cute “from A-Z” model…).

Whether you have already adopted MySQL or are thinking of converting from Oracle, DB2, Microsoft SQL Server or even sqlite, this new package may be what you need.

And now, the full text of the press release, for the curious:

‘MySQL Administrator’s Bible’ Hits the Bookstands: Pythian Launches MySQL Accelerator Adoption Package

The Pythian Group, the leading provider of remote database services, is pleased to announce that the much-anticipated MySQL Administrator’s Bible, written by employee Sheeri K. Cabral, is now available.

Published by Wiley, MySQL Administrator’s Bible is a comprehensive guide to using and administering MySQL. Ideal for the beginner and the experienced administrator, the book’s 22 chapters cover the fundamentals of MySQL database management-including MySQL’s unique approach to basic database features and functions-as well as SQL queries, data and index types, stored procedure and functions, triggers and views, events and transactions. It also discusses such topics as MySQL server tuning, administering storage engines, caching, backup and recovery, managing users, index tuning, database and performance monitoring, security, and more.

Cabral is a world-renowned MySQL expert and a sought-after speaker for many conferences, including the MySQL Conference and Expo (where she delivered a keynote this year), OSCon and LISA. She founded and organizes the Boston, Massachusetts MySQL User Group and in 2007 and 2008 won the MySQL Community Member of the Year Award.

In her job at Pythian, Cabral provides database administration support and consulting services to enterprises worldwide. She is one of several Certified MySQL DBAs at Pythian, which boasts an impressive 75 per cent certification rate.

On April 21, Sun Microsystems named Pythian its first authorized MySQL Enterprise Remote DBA partner, as part of Sun’s MySQL Enterprise Connection Alliance (MECA) partner program. As the only Platinum partner in the program, Pythian offers the highest level of support and care available for customers.

IODA, the industry-leading digital distribution company for the global independent music community, and Conductor, a leading provider of search engine optimization technology and services, have just signed on as Pythian’s first Platinum customers within the program. Pythian is celebrating the launch of Cabral’s book by giving complimentary copies to IODA and Conductor, and to the next eight customers to join the program.

“Pythian is uniquely positioned to take advantage of two interesting trends that are happening in the IT industry,” said Paul Vallee, Founder and Executive Chairman at Pythian. “First, a growing number of companies, large and small, are moving applications to MySQL. Second, outsourcing remote DBA service providers is on the rise. Enterprises want to reduce costs without sacrificing performance and industry best-practices.”

Anticipating this demand, Pythian has launched the MySQL Adoption Accelerator Package: a series of interactive training and consulting sessions that prepares DBA teams to deploy MySQL more securely, reliably and efficiently in their production environments. The package is a comprehensive deployment readiness program that covers all aspects of a deployment from an overview of MySQL and comparisons to other databases to strategies for performance testing and developer support and mentoring.

Cost and Availability

MySQL Administrator’s Bible is sold through most bookstores including Wiley and Amazon.com. It retails for $US 49.99. The MySQL Adoption Accelerator Package is available immediately. For more information, contact sales@pythian.com.

About Pythian

The Pythian Group is a global industry-leader in remote database administration services and consulting for MySQL, Oracle and SQL Server. Since 1997, companies have trusted Pythian to keep their database infrastructures running efficiently while strategically aligning IT with business goals. Pythian’s unparalleled DBA skills, mature methodologies, best practices and tools enable clients to do more with fewer resources. Pythian’s corporate headquarters is in Ottawa Canada, with offices worldwide. Pythian was the first managed services provider to build a practice around MySQL in 2002. For more information visit: www.pythian.com. Follow Sheeri Cabral’s blogs on MySQL: http://www.pythian.com/news/author/sheeri. Have a question? Use our hashtag #Pythian on Twitter and ask away.

Contacts:
Jolita Communications for Pythian
Lisa Courtney Lloyd
613-271-7512
lcourtneylloyd@jolita.ca

In the wake of Meetup.com changing their sponsorship agreements, rubella an international not-for-profit group, has set up a fund for user group sponsorships. You can use the button below to donate any amount of money in US funds via PayPal:





(all monies sent through that button will be earmarked as a directed donation to the “User Group Fund”. In the interest of not cluttering up this blog post with a Donate button for each currency, you can use PayPal to send funds in *any* currency to “donate@technocation.org”. Just be sure to specify if you want the money to go to specifically to the User Group Fund.*)

Note that meetup.com’s fees are $144 per year ($12 per month).

Four years ago, MySQL and Meetup.com entered into an agreement. I have no idea of the details of this sponsorship, though from reading in between the lines, I believe the sponsorship was an in-kind sponsorship — that is, no money exchanged hands, but there were mutually agreed upon benefits. I have no idea what the benefits to Meetup.com were — publicity or free consulting, perhaps.

What I do know is that Meetup.com is changing the way they are doing sponsorships. Arjen Lentz blames Lenz of the community team for not setting a reminder, saying that doing so “would’ve preempted anything”. The only thing a reminder would have done would have been to give MySQL more time to figure out what to do, and the end result would be the same — user groups can stay at meetup.com, and find a way to pay the fees, or they can migrate to a free system.

He also notes that it’s “Interesting that none of the MySQL Community team are themselves organisers or meetups/usergroups, they’d have been informed.” David Skujarne feels similarly, noting “it feels like this was just tossed this back to organizers to fix.” And yet, I have had a conversation earlier this week from a prominent community leader who was worried that MySQL was “taking over” a certain community event that is in its early planning stages. So which way do we want it? Do we want a volunteer-led community, or a community led by paid liaisons from MySQL?

Arjen commented to another post with his concern “that many will just shut down the group rather than move or pay.” In all my discussions with user group leaders, not one of them has even thought to shut down the group. Some have made the decision to stay on meetup.com and pay fees out-of-pocket, others have made the decision to move to a free service, still others are dedicated to finding sponsors (send mail to donate@technocation.org if you would like to be matched with a sponsor), and a few have passed the baton to another leader to make the decision.

Mostly, though, I have had people offering me money (David will be happy to know that those people include individuals on the MySQL Community Team) and moral support so that user groups can continue. And so, I have turned those monetary offers into something more: a fund. Let’s see how long we, as a community, can keep ourselves going.

Will some user groups close up shop? Probably. My own user group has had 40 user group meetings, which would not have happened if MySQL did not sponsor us. If the Boston MySQL User Group closed tomorrow, we still would have had those 40 meetings. So that is still a benefit. With luck and financial contributions, as a community we can stop whining and do something about the situation we find ourselves in.

* If you would like to send a physical payment (check, money order, postal order, in any currency), you can make it payable to Technocation, Inc. and send it via post to:

Technocation, Inc.
PO Box 380221
Cambridge, MA 02138
USA

Should you need it for your records, Technocation’s EIN (US tax id) is 20-5445375. Technocation, Inc. is a 501(c)3 corporation, and donations are tax-deductible to the fullest extent of the law.

The July meeting of the Boston MySQL User Group will feature Eric Day, pharm a prominent Drizzle developer, erectile talking about Drizzle and Gearman:

In this talk we will discuss two growing technologies: Drizzle and Gearman.

We will explain what the Drizzle project is, physiotherapy what we aim to accomplish, and an overview of where we are at. We will also be introducing the fundamentals of how to leverage Gearman, an open-source, distributed job queuing system. Gearman’s generic design allows it to be used as a building block for almost any use – from speeding up your website to building your own Map/Reduce cluster. We will tie Drizzle and Gearman together and demonstrate how they work in a custom Search Engine application.

————————

Here is the URL for MIT’s Map with the location of this building:
http://whereis.mit.edu/map-jpg?selection=E51&Buildings=go

This map shows the MBTA Kendall Stop:
http://whereis.mit.edu/map-jpg?selection=L5&Landmarks=go
(the stop is in red on that map, and you can see E51 in the bottom right)

Here are the URL’s for the parking lots (free and open to the public after 3 pm):
http://whereis.mit.edu/map-jpg?selection=P4&Parking=go
http://whereis.mit.edu/map-jpg?selection=P5&Parking=go

Free pizza and soda will be served, so please RSVP accurately.

To RSVP anonymously, please login to the Meetup site with the e-mail address “admin at sheeri dot com” and the password “guest”.

For more information, see: http://mysql.meetup.com/137/

This is the 150th edition of Log Buffer, herbal and he escaped, resuscitation thus leaving me with the pleasurable duty of compiling the 150th weekly Log Buffer.

Many people other than Dave are finding release this week. Giuseppe Maxia explains some details of MySQL’s New Release Model. Andrew Morgan announces a New MySQL Cluster Maintenance Release. Aleksandr Kuzminsky of the MySQL Performance Blog releases build16 of the Percona MySQL binaries (versions 5.0.77 and 5.0.82), pharmacist which adds some 5.4 features and fixes some bugs.

Darran Cassar, the MySQL Preacher, has created a package for Security Roles and Password Expiry on MySQL. And for a future MySQL release, look for Two New Status Variable Patches, for query invalidation count and a last received datetime for replication heartbeat. These patches were contributed by MySQL Support Team member Andrew Hutchins.

Dave Beulke points out a new feature in DB2 9.7 — DB2 Compatible with Oracle.

To prepare for a future SQL Server release where CREATE DEFAULT, sp_bindefault and sp_unbindefault will be deprecated, Martin Bell advocates Changing Bound Defaults to Default Constraints. If you are going to upgrade SQL Server, definitely look at the notes from SQL Master of SQL Server QA’s presentation on SQL Server Upgrade Issues and How To Evaluate Potential Issues.

Stewart Smith lets is know that Drizzle Tarballs for the Next Milestone – Aloha are being released weekly. Meanwhile, Jay Pipes and the rest of the Drizzle team find, fix and explain the cause of a performance regression in Drizzle Performance Regression Solved – TCMalloc vs. No TCMalloc.

Lenz Grimmer has started organizing OpenSQLCamp 2009, Aug 22-23 in Germany; he posts details and links in Speaking at FrOSCon and Organizing the OpenSQLCamp 2009, European Edition. If you want to speak, Lenz also lets you know that Ronald Bradford gives out a discount code and reminds us that we can still attend OSCon 2009 at a Discounted Rate (until June 23rd). OSCon 2009 will be held July 20-24 in San Jose, California. And in Iowa, Michelle Ufford sends out the East Iowa SQL Saturday Call for Speakers to be held on Saturday, October 10, 2009.

Getting back to basics, Richard Foote explains Oracle’s cost-based optimizer in CBO and Indexes, an Introduction for Absolute Beginners. Speaking of optimizations, Valcora has Another Way To Do Performance Tuning — make sure you actually need the queries that are running against your system!

Tanel Poder points to a blog post on Using Perfsheet and TPT Scripts for Solving Real Life Performance Problems in an Oracle RAC environment. And Jonathan Lewis provides a script you can run if you are concerned about the potantial of Oracle PGA leaks. Over at Oraclue, Miladin Modrakovic shows how to discover memory “leaks and other problems with allocations of memory” in Memory Annotations and Oradebug.

If you are migrating a database from Oracle to MySQL, you may be interested in George Trujillo’s process of Converting an Oracle Schema to MySQL.

Kimberly L. Tripp reveals a lot of information about how SQL Server optimizes queries and common myths when she reveals The Tipping Point Query Answers. David Fetter shares Materialized Views Performance Tips in Postgres, and Leo Hsu and Regina Obe talk about Planner Statistics in the Postgres optimizer.

In the land of DB2, Henrik Loeser shares a PureXML Performance Tip: A Sequence of Good Indexes.

Coskan explains
How to Use Sysman Schema Without Oracle Enterprise Manager. John Hallas notes that using Oracle’s EM to migrate a database to ASM is easy, but seems slow, in ASM Metadata and Migrating a Database to ASM. He then goes on to share a coworker’s Script to Backup ASM Metadata. J. Arneil shows how to go about Fixing up ASM Disk Header Corruption, should you find yourself in a rough spot.

Aaron Alton has a great article telling us that in Defensive Programming, Assumptions Must be Guaranteed or Tested, and another one on handling tags efficiently in Full Text Search vs. Denormalized Tables Remus Rusanu provides a Transact-SQL stored procedure template for Exception Handling and Nested Transactions.

I’ll end with a link to another survey on What’s the hardest part of becoming an involuntary DBA? It’s one simple question, so go fill it out! You have the time, especially since Craig Mullins points out that on average, we got a 4.6% salary increase in 2008 in Salaries for Data Professionals Inching Upward. To learn more and become even better in your field, get a 15-day free trial to Safari Books Online from O’Reilly, with a 15% discount if you continue past the free trial, courtesy of Susan Visser.

Today’s trivial MySQL system variable:

old_alter_table

The interesting bit is that this is a system variable, order manual page.

Instead, visit this .

Unfortunately, that documentation is very sparse. It tells us:

old-alter-table is an option that can be set in an option file (such as /etc/my.cnf)

old_alter_table is the name of the variable.

And….that’s it. It is neither a system nor status variable, there is no scope, and no entry for whether or not it is dynamic. These last 2 are baffling, though they show up in other variables in the matrix on the “server options” manual page. The scope is either session or global; there is no NULL — the scope may not be *relevant*, but it still exists.

As well, either the variable can be settable on commandline, or not. There is no meaning to a NULL value in that column.

The most egregious issue is that there is no documentation whatsoever about what the variable does. What happens if I set old_alter_table to ON?

(My guess is that it’s a placeholder for the behavior of ALTER TABLE in 5.0 and earlier, perhaps it disables the use of ALTER TABLE ONLINE? My second guess is that whatever the functionality, it is not implemented yet, similar to date_format).

At the May 2009 Boston MySQL User Group, thumb Giuseppe Maxia of Sun Microsystems gave a presentation about MySQL 5.4 with use cases and benchmarks to show how it outperforms all other current MySQL releases (including the Google patches and the OurDelta/Percona releases).

The slides can be downloaded from http://www.slideshare.net/datacharmer/mysql-54-theory-and-practice

The video can be watched below, or directly on YouTube at http://www.youtube.com/watch?v=giT4SYXuVqA&hl

At the July MySQL User Group, prostate , buy an open source, distributed job queuing system.

The slides can be downloaded from http://www.oddments.org/notes/DrizzleGearmanBoston2009.pdf.

The first hour of video, where Eric and Patrick talk about Drizzle, is at http://www.youtube.com/watch?v=hi4cGzFlcuU, and below:

The second part, about 1.5 hours, where Eric and Patrick talk about Gearman, and then illustrate Gearman and Drizzle working together in a custom search application called Narada, is at http://www.youtube.com/watch?v=Auatakyl5eM and below:

There’s a lot of information in those presentations, and I would like to wholeheartedly thank Eric and Patrick for such a wonderful user group!

I think many people truly realized how much they take the MySQL documentation for granted during the recent multi-hour outage from mysql.com’s data center. Apparently there is a lot of FUD floating around about the legality of mirroring the documentation, buy more about .

The manual page at http://dev.mysql.com/doc/refman/5.1/en/copyright-mysql.html says:

You shall not publish or distribute this documentation in any form or on any media, oncologist except if you distribute the documentation in a manner similar to how Sun disseminates it (that is, opisthorchiasis electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.

Now, I am not a lawyer, however, to me this means that you can indeed mirror the documentation, so long as you mirror the binaries as well. Giuseppe commented on Mark’s post (linked above) saying “There is no license restriction to mirror the docs.”

Note that I played a part in unknowingly spreading the FUD — I thought special permission was needed to mirror the documentation (and binaries) and indeed, it is not.

As a postscript, what are everyone’s favorite site mirror programs? Searching http://www.ohloh.net for an open-source website mirror did not reveal anything very popular, though I am sure there are a few “standard” mirroring tools that folks use. (Perhaps I should have searched for spiders, and seen which spiders have sync/download capabilities?)

download usb mobile phone software . download minitab software
download nintendo software wii ds wifi Download software fairz software download free music
download free ipod zoom software . ad aware plus full download software
bt download software . download data mining software

Germany …. close to Bonn and Cologne.”

I plan on being at FrOSCon and OpenSQLCamp. Where I go before and after that is up to *you*. Yes, internist that is right, sovaldi sale perhaps I will visit a user group, approved such as France’s MySQL User Group. Or perhaps your company needs the type of services Pythian can offer — we can do the “traditional consulting” model where we look over your systems for performance tuning and security gains, or fix problems in an emergency. Even more of a win, we specialize in recurring engineering — we can supplement your existing IT staff with database expertise, and do all the database work your current staff does not have time to do.

We do it all, whether it’s large project work that would ordinarily be farmed out to consultants such as new schema development, ETL and reporting scripts and data warehouse creation; or the ordinary but important stuff that keeps the business running like ensuring backups work, constructing a no-downtime architecture, making the development environment realistic, testing failover, and capacity planning.

If you have a mixed environment, that’s OK too — we cover the major database vendors (open and closed source) and have a team of system administrators if you need help in that arena.

Keep in mind — I’m not a sales person, I’m a tech person. Day-to-day I not only lead a team of MySQL DBA’s, I am one myself, and have my hands in the tech stuff all the time. Most of the reasons I like working at Pythian are the same reasons our clients love us — 24×7 coverage to me means “my pager only goes off past 5 pm if it’s the one weekend a month I’m oncall”, to a client it means “whoever is paged is already awake most of the time.”

So if you would like to sit down with me and have a drink, just say “hi”, speak at an upcoming User Group, or talk about what Pythian can do for you, comment here, or e-mail me at “cabral at pythian dot com” and we will work something out. I can come to your European location, meet you at FrOSCon or OpenSQLCamp, or we can arrange a meeting at our Prague office sometime around the end of August.

A short time ago I posted how I was but experiences that others have had (and commented to on that blog post) have made me want to put out another short article about using XtraDB backup.

The first few points remain the same — the backup process is stable, cialis 40mg we were able to use the binaries without compiling, rx and using Innobackupex as the wrapper script, analogous to Innobackup.pl.

However, we did figure out why Xtrabackup had to be run as the mysql user:

Xtrabackup writes to the data dictionary file (ibdata1, for example). We have not examined if it also writes to the data and index files (still ibdata1 by default, or the .ibd files when using innodb_file_per_table). [EDIT: The authors of Xtrabackup have commented below as to why the write occurs:

xtrabackup is kind of very small and restricted instance of InnoDB, and reuses a lot of InnoDB code.

InnoDB by default requires O_RDWR option on ibdata1 files at start, and xtrabackup therefore also did that. In the latest push to trunk it was fixed, now xtrabackup opens file with O_RDONLY flag.

When the new version is released, we will be sure to test it so that we can run the backup as a read-only user, and report back.]

On the one hand, Xtrabackup is a free tool. On the other hand, modifying InnoDB’s underlying files risks corrupting all the InnoDB tables in the system. Which is a tricky situation when it is your backup tool that might cause corruption that is beyond repair, as you do not know if you can trust your backups.

Regarding the complaint Dan R commented on the previous post that innobackupex could stream the backup to gzip, and helpfully gave the syntax. Shlomi Noach also pointed out streaming as a feature of Xtrabackup that ibbackup does not have. However, Gerry Narvaja, a co-worker noted (and commented):

I’ve been trying to install xtrabackup/innobackupex for a customer and I’m finding a few glitches, especially w/ streaming:

We use innoback(ex) wrapped in our own scripts to allow for rotation and other operations. We also use ZRM for some installations, so this would apply to integration with this tool as well. These are the glitches I found:

1. Using streaming by piping it into ‘gzip’ masks the return code from innobackupex.pl. Since gzip will almost always return 0, you can’t rely on it to determine backup success.

2. The next alternative would be to review the innobackupex.pl’s output for the OK at the end. But since it redirects the output to ’stderr’ to allow for streaming, you need to add “2> innobackupex.log” before piping and grep for the “OK” at the end.

and noted that there were some limitations:

innobackupex script is limited in the type of options you can specify compared to what the xtrabackup executable supports. I find this annoying since it limits the directories where you can have the backups, data directories and logs.

Xtrabackup doesn’t work for MySQL v4.1. In the Percona forums there was a suggestion that the 5.0 patch should work. This is true, but xtrabackup.c has other dependencies on 5.x definitions and structures I didn’t have time to review. Baron Schwartz correctly suggested that these dependencies might be trivial in a tweet directed to myself. I’ll post my findings to the Percona forums and hopefully we can soon have a patched version.

It’s been just over three months since the April 2009 MySQL Users Conference and Expo. It took a while for the files to be processed, geriatrician , healing and then I found out that the online streaming was not working properly. So I started playing with things, re-encoding some videos, updating the software, but to no avail.

Just as I was about to give up I got notification that Technocation, Inc. was accepted into YouTube’s not-for-profit program, which allows movies larger than 10 minutes to be uploaded and viewed advertisement-free.

So then I had to upload the videos to YouTube and add descriptions.

So with no *further* delay, here are all the videos from the 2009 MySQL Conference and 2009 MySQL Camp:

The brief description — just the playlists:
Conference playlist (16 videos):
http://www.youtube.com/view_play_list?p=0F93B7A29807C4F7

Camp playlist (6 videos):
http://www.youtube.com/view_play_list?p=5EE4B7EC2F257251

The longer description – each video with title, presenter(s) and link:
MySQL Camp:
Keynote: The State of Open Source Databases
Brian Aker (Sun Microsystems)
http://www.youtube.com/watch?v=m2V-hvD_icA


Top 10 MySQL Pet Peeves and How to Workaround Them
Jeremy Zawodny
http://www.youtube.com/watch?v=yxx2XbbTiP0

Intro to XtraDB, a Scalable InnoDB-based Storage Engine
Ewen Fortune (Percona)
http://www.youtube.com/watch?v=kTCUZ3s1iIY

Grand Tour of the Information Schema and its Applications
Roland Bouman
http://www.youtube.com/watch?v=M3ryKyMkiQY

Chasing Bottlenecks
Morgan Tocker (Percona)
http://www.youtube.com/watch?v=1L8TwuKMg3M

InnoDB Database Recovery Techniques
Peter Zaitsev (Percona)
http://www.youtube.com/watch?v=yuU40p_V9Ic

MySQL Conference:

Tutorial: Understanding How MySQL Works by Understanding Metadata
Sheeri K. Cabral (The Pythian Group), Patrick Galbraith (Lycos Inc.)
Part 1: http://www.youtube.com/watch?v=C_Uv_4I9gus
Part 2: http://www.youtube.com/watch?v=V3IBVsYGdtA

Using the Event Scheduler: The Friendly Behind-the-Scenes Helper
Giuseppe Maxia (Sun Microsystems Inc), Andrey Hristov (SUN Microsystems)
http://www.youtube.com/watch?v=-CmIcEXrf3g

Starring Sakila: Data Warehousing Explained, Illustrated, and Subtitled
Roland Bouman (XCDSQL Solutions / Strukton Rail), Matt Casters (Pentaho Corp.)
http://www.youtube.com/watch?v=cSXWTNYn3es

Map/Reduce and Queues for MySQL Using Gearman
Eric Day (Sun Microsystems), Brian Aker (Sun Microsystems, Inc.)
http://www.youtube.com/watch?v=xDRDu1g270c

Unleash the Power of Your Data Using Open Source Business Intelligence
Christopher Lavigne (Breadboard BI, Inc.)
http://www.youtube.com/watch?v=XlhVsJ9ovgg

Tricks and Tradeoffs of Deploying MySQL Clusters in the Cloud
Thorsten von Eicken (RightScale, Inc)
http://www.youtube.com/watch?v=9QchPQvvLEw

Beginner’s Guide to Website Performance with MySQL and memcached
Adam Donnison (Sun Microsystems)
http://www.youtube.com/watch?v=X1ePFOhHEag

Advanced Query Manipulation with MySQL Proxy
Kay Roepke (Sun Microsystems)
http://www.youtube.com/watch?v=LuwScTm5zrY

If You Love It, Break It: Testing MySQL with the Random Query Generator
Philip Stoev (Sun Microsystems)
http://www.youtube.com/watch?v=_jf4__2zgR8

The ScaleDB Storage Engine: Enabling High Performance and Scalability Using Materialized Views and a Shared-Disk Clustering Architecture
Moshe Shadmon (ScaleDB)
http://www.youtube.com/watch?v=_5QNSxfpYSU

SPIDER Storage Engine: Database Sharding by Storage Engine
Kentoku SHIBA (ST Global.,Inc)
http://www.youtube.com/watch?v=scKjO0LnnJo

Optimizing MySQL Performance with ZFS
Allan Packer (Sun Microsystems), Neelakanth Nadgir (Sun Microsystems)
http://www.youtube.com/watch?v=a31NhwzlAxs

Improving Performance by Running MySQL Multiple Times
Martin “MC” Brown
http://www.youtube.com/watch?v=5uKBg9prA1A

High Performance Ruby on Rails and MySQL
David Berube (Berube Consulting)
http://www.youtube.com/watch?v=ts7fIl0WZoc

Crash Recovery and Media Recovery in InnoDB
Heikki Tuuri (Innobase / Oracle Corp.)
http://www.youtube.com/watch?v=5KFxSDh_-18

In record time, viagra 60mg all 11 videos that were taken at OpenSQLCamp Europe are online.

For those who missed the sessions, decease or just want to relive the fun!

Almost all the sessions were filmed; regrettably Darren Cesar’s Securich – MySQL user administration and security made easy! and Stephane Combaudon’s Minimizing data access with covering indexes were not.

The YouTube videos have the descriptions and resources from the official conference pages, and links to pages. If there is more information to add (for example, the slides from a talk are now online), or if you spot an error, please feel free to add a comment on the YouTube video, or as a comment to this blog post.

Individual presentations:

Enjoy!

A broken VIEW was caused by the view’s definer being non-existent. In this particular system, youth health backups are done by replicating all the machines (production, malady development, this web test, etc) to one server and doing cold physical backups off that server, which currently has 12 instances running.

So in order to find on what machine the user might still be defined, I went to the backup server. All the data directories are in one path, ie:

instance 1 has a datadir of /data/mysql/instance1
instance 2 has a datadir of /data/mysql/instance2

Now, the unix tool strings can be used against many types of files. In particular, though, you can use strings on the mysql/user.MYD file to see the username, host, and password hash. (note that strings only shows strings longer than 3 characters, so if your host or username is 3 characters or less, it will not show up in the output of strings. You can change this with the -n option to strings).

$ cd /data/mysql/
$ strings -f */mysql/user.MYD | grep username
instance5/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
instance7/mysql/user.MYD: username*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ 

While writing this tidbit up, I realized I could have easily run grep and gotten the same results:

$ grep username */mysql/user.MYD
Binary file instance5/mysql/user.MYD matches
Binary file instance7/mysql/user.MYD matches

So do not underestimate the power of basic tools such as strings and grep. They can really help you! (I often use strings mysql/user.MYD to see if a particular mysql user has been set up, especially when I cannot seem to login. This way I can know whether or not I am typing an incorrect password, or if the user just does not exist at all.)

Mike Hogan, somnology CEO of ScaleDB spoke at the Boston MySQL User Group in September 2009:

ScaleDB is a storage engine for MySQL that delivers shared-disk clustering. It has been described as the Oracle RAC of MySQL. Using ScaleDB, .

Slides are online (and downloadable) at http://www.slideshare.net/Sheeri/scale-db-preso-for-boston-my-sql-meetup-92009

Watch the video online at http://www.youtube.com/watch?v=emu2WfNx4KA or directly embedded here:

I spent Friday examining the systems for a more traditional consulting gig (in case you did not know, here has offered more traditional consulting and emergency services in addition to our remote DBA offering for our entire 12 year history). It is a familiar story to many people — the database performance was unacceptable.

The company had a few log tables that had huge amounts of inserts and foreign keys, drug so they used InnoDB. Unfortunately, stomach they also used a GUID as a primary key (which is getting more and more common these days, but long primary keys with InnoDB slow down INSERT, UPDATE and DELETE commands a great deal) — varchar(32) and utf8.

That’s right — their primary key for many of these tables was 96 bytes long (32 characters * 3 bytes per character), and as an InnoDB table, the primary key is clustered with every other index. One of the more frequently used tables had 8 indexes other than the PRIMARY KEY — 7 were indexes on varchar(32) fields, the other was on an int(11) field (signed integer).

The query load on the server was 99% writes, 1% reads. The log tables only had rows inserted, not deleted or updated. Thus, we offered a few different solutions (in no particular order):

1) Use a BLACKHOLE table on the master and replicate to a slave server. This would make the INSERTs to the master fast, though the slave would lag behind. The slave could be changed to MyISAM or ARCHIVE or some other storage engine.

2) Use MyISAM on the master and slave. This was the solution we went to, because the log tables could be re-created with no data and moved into place, and the loss of foreign keys was not a big deal, since the application checked for them anyway. ARCHIVE could also be used, it is faster than MyISAM on inserts because it only allows one index, the PRIMARY KEY. concurrent_insert was set at the default of 1, but we changed it to 2 just in case there was an errant UPDATE or DELETE causing a gap in the MyISAM table.

3) Add a PRIMARY KEY that is AUTO_INCREMENT, keeping the GUID a UNIQUE KEY. This would speed up the writes without sacrificing any data. This can be combined with dropping unnecessary foreign keys to make the inserts faster.

4) Move the log tables to a different machine entirely. This would require the application to have two different database handlers.

5) Use INSERT DELAYED into the logging tables.

We discussed these scenarios and the pros and cons, and eventually we chose to do #2, which we could do right away, and indeed, we had an immediate positive impact. Almost all the unnacceptable performance went away.

We were also able to audit the system and provide several good recommendations for ways they can improve their system. It is exciting for me to be able to help people out in a very tangible way — often we do not see some of the really crazy problems that affect few people (such as slave lag getting further and further behind) because our remote DBA clients have the benefit of ongoing help from us, and we generally find the smaller degradations in performance before they become a large issue.

Being able to spend a few hours with a new environment and really help them out was extremely fulfilling for me. I love that MySQL has many different options (and there are likely more that I did not think of) that all would work to achieve better performance. I think people like to have a choice, too, so they do not feel they were forced to do something they did not want to do. Especially when there are solutions on both the DBA and developer side.

Mark Callaghan posted there is more query throughput when the query cache is disabled.

However, gastritis the tests are skewed — not on purpose, ed I am sure, and Mark admits he has not used the query cache before — but they are skewed all the same. Mark’s error was that he assumed he could just turn on the query cache and see if it works. Most features of MySQL do not work that way — you have to understand the strengths and weaknesses of the feature in order to use it properly.

Mark’s benchmark definitely reinforces that turning on the query cache without any knowledge of your system is a bad idea, and I agree with him on that. But it does not in any way mean that the query cache is always a bad idea. In fact, the MySQL manual page at http://dev.mysql.com/doc/refman/5.1/en/query-cache.html has some caveats about when the query cache is useful and when it is not useful.

It is important to know how the MySQL query cache works, so I will first explain that, and then explain why Mark’s test is not a very good broad generalization. MySQL’s query cache is not useful all the time, but it can be quite useful! If you are already familiar with the query cache, you can skip ahead to why Mark’s benchmark is skewed.


How to use the MySQL query cache
Firstly, there are a few ways to use the MySQL query cache. You can disable it, which means no queries are cached; you can set it to cache all queries, and use a special keyword to not cache queries (replace SELECT with SELECT SQL_NO_CACHE). query_cache_type=1 or ON will set the query cache in this way.

You can also set it to cache no queries except those that have a special keyword — you guessed it, replace SELECT with SELECT SQL_CACHE and a query will attempt to be cached. To set the query cache in this way, set query_cache_type=2 or DEMAND.

What queries are cached
Regardless of which method you choose, not all possible queries are cached. Only deterministic SELECT statements are cached — a statement such as SELECT count(*) from tbl is deterministic, while SELECT NOW() is non-deterministic for the purpose of the query cache.* Queries that use user-defined functions, temporary tables, LOCK IN SHARE MODE, FOR UPDATE, INFORMATION_SCHEMA or mysql system tables are not cached. Most SELECT subqueries are not cached. SELECT queries that are part of stored functions, triggers, views and events are not cached. However, in MySQL 5.1, SELECT queries that contain a view can be cached. The MySQL manual page at http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html has more detailed information on what is allowed and what is not allowed.

In the query cache, a hash of the query is stored along with the result. There is a variable, query_cache_limit, which sets an upper limit on the size of the result set that can be cached. So even if a query can be cached, it may not be cached if the result set is larger than query_cache_limit.

How the query cache is used
The lifecycle of a non-prepared SELECT statement when the query cache is on (query_cache_type > 0) is:

1) hash the SELECT query
2) check the hash against the query cache
3) if hash matches, returned the result set from the query cache. If not, the query is sent to the parser and executed in the usual manner, and results are stored in the query cache if the query is cachable.

This means that having the query cache on has some overhead, even if no queries are ever cached.

A query (and its result) is removed from the query cache when it is invalidated or pruned. A query is invalidated when any table it refers to has been changed, even if the changes do not affect the actual result set in the query cache. A query is pruned when a new query needs to be inserted into the query cache and there is no room; the query cache prunes queries using a least recently used (LRU) algorithm.

In other words, there will be a lot of unnecessary overhead with the query cache if a table is often written to, because queries using that table will be constantly removed from the query cache. This does not mean that if you have some tables that are frequently written to, you should turn the query cache off — you can use the query_cache_type of ON with the SQL_NO_CACHE keyword to cache all except some queries, or you can use the query_cache_type of DEMAND and the SQL_CACHE keyword in SELECT queries to cache no queries except those you specify.

Why Mark’s Benchmark is skewed

It is important to note that InnoDB was set up with:
innodb_buffer_pool_size=2000M

and the sysbench program was run with:

../sysbench --test=oltp --oltp-table-size=2000000 --max-time=180 --max-requests=0 --mysql-table-engine=innodb --db-ps-mode=disable --mysql-engine-trx=yes --oltp-read-only --num-threads=$nt run

I will explain what the important sysbench variables are in context.

1) The benchmark used sysbench in OLTP mode against an InnoDB table. The InnoDB buffer pool is hot after the table is created and populated, while the query cache is empty and cold.

InnoDB has its own cache — the InnoDB buffer pool. sysbench is run with –oltp-read-only, meaning there are no INSERT, DELETE or UPDATE statements. This is good; it means that the results are not skewed by query cache invalidations, though there may be pruning.

The first thing sysbench does is preparation — it creates the table and populates it with data (2,000,000 rows as per oltp-table-size). After this is done, the InnoDB buffer pool (2000M in size) has gone from empty to containing data. I do not know how large the row size of the sysbench table is; however, I can do some calculations:

2000 Mb * 1024 = 2,048,000 Kb / 2,000,000 rows = 1.024 Kb per row

This means that in order for some data to *not* be current in the InnoDB buffer pool, the row size had to be approximately larger than 1 Kb per row.

The manual at http://sysbench.sourceforge.net/docs/#database_mode shows the schema of the table that is used.

CREATE TABLE `sbtest` ( `id` int(10) unsigned NOT NULL auto_increment, `k` int(10) unsigned NOT NULL default ‘0′, `c` char(120) NOT NULL default ”, `pad` char(60) NOT NULL default ”, PRIMARY KEY (`id`), KEY `k` (`k`)

(note that you at least need to add a final parenthesis “)” for the query to work, and should also specify ENGINE=INNODB if you want to test on your system).

So, that’s two 4-byte integers, and two character fields…for the sake of argument, let’s say you are using UTF-8 in MySQL 5.1, where utf8 is 3 bytes per character, that’s:

4 + 4 + 120*3 + 60*3 = 548 bytes

Let’s say you are using a version of MySQL that uses 4 bytes per character for utf8 (I know 6.0 was using that, not sure about 5.4):

4 + 4 + 120*4 + 60*4 = 728 bytes

So either way, all of the data in the table is already loaded in the InnoDB buffer pool when the test begins. The InnoDB buffer pool is already hot, whereas the query cache is empty.

On systems where a query can be cached and used instead of executing and having to look on disk for data, using the MySQL query cache will give you *much* better performance.

2) The query cache statistics are not given. It’s very possible that the only thing that was measured was how much overhead the query cache provides if it is never used.

The queries that are run are the default (oltp-test-mode is not set, and it defaults to “complex”) which can be seen under the “Advanced transactional” heading in the sysbench manual at http://sysbench.sourceforge.net/docs/#database_mode. Only read queries are done, so the queries are:

SELECT c FROM sbtest WHERE id=N
SELECT c FROM sbtest WHERE id BETWEEN N AND M
SELECT SUM(K) FROM sbtest WHERE id BETWEEN N and M
SELECT c FROM sbtest WHERE id between N and M ORDER BY c
SELECT DISTINCT c FROM sbtest WHERE id BETWEEN N and M ORDER BY c

The values for the variables in the query are chosen at random, though they are sensible values. The testing time is very short, only 3 minutes of running time (sysbench is called with max-time=180). It is quite possible that all the SELECT queries were put into the query cache and there was never a query cache hit. Of course there will be a lot of overhead if the query cache is never used! Particularly if it has to prune for more memory.

I would like to see Qcache_hits, Qcache_inserts, Com_select (number of SELECT statements that did not use the query cache) and Qcache_lowmem_prunes. That is what I look at for any system that has the query cache running, so I can determine the effectiveness of the query cache.

There is more in-depth information on how to find the usefulness of the query cache, query cache fragmentation, and a few ways to cache more queries in the MySQL Administrator’s Bible on pages 427-434 — part of the “Caching with MySQL” chapter. I used the book to help me write this blog post, so I do think it is fair to cite my sources….even though it happens to be a source I created (and that’s why I consider it a shameless plug, I have no shame citing my sources)!

—————-

So that all being said, the query cache is extremely useful when it is used for repeated queries. The benchmark Mark performed most likely did not actually use this. I have seen production environments fall apart when someone turned on on the query cache for all queries; Mark’s benchmark proves that it is not a good idea to randomly turn on the query cache. You have to know what you’re doing.

* for the purpose of replication, it is deterministic, but that’s another topic.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Admin