Tuesday Sep 22, 2009

I have somehow managed to weasel been selected to speak at a few of the upcoming conferences this October.  I will be presenting at the various conferences either on Performance tuning the MySQL server or on using EXPLAIN.  I know... I know - they must be crazy to have picked me, but I am not crazy enough to turn down the opportunity.

 I will be speaking at Codeworks -Miami (Sept 30 - Oct 1), the Zend PHP Conference (Oct 19 - 22) and the Florida Linux Show (Oct 24) so if you are attending or just in the area - be sure to find me for a chat.  If you are at the Florida Linux Show I will be in the MySQL booth and should also have some goodies to hand out as well - thanks to the Community team... and who wouldn't want free swag...

It will be absolutely crazy for a bit (my husband will get to pretend he is single for a while) but I can't wait to see you there. 

Guest post by Ligaya Turmelle, MySQL Support Engineer

Wednesday Sep 09, 2009

The MySQL Community Team maintains a calendar to keep track of Open Source events and conferences that might be relevant from a MySQL point of view (either by submitting a talk, sponsoring or attending it). This calendar is now public - you can either look at the HTML version on the MySQL Forge or subscribe to the iCal feed (e.g. using Mozilla Sunbird or Lightning).

Are we missing an event? If you know any other events that should be included in this calendar, please submit your suggestions via this event submission form. Thank you!

Tuesday Aug 11, 2009

FrOSCon Logo

Do you plan to attend the Free and Open Source Conference (FrOSCon) in St. Augustin, Germany on August 22 & 23? Are you a fan of MySQL and would you like to share your knowledge about it with other users? Here is your chance!

Sun Microsystems is a Gold sponsor of FrOSCon this year and will also be present with a booth there on both days. In addition to demo stations about Open HA Cluster, OpenSolaris and NetBeans, Sun will also provide space for a MySQL info desk, which we would like to turn into a "Guru Bar", including members of the MySQL community.

The goal is to talk with existing and potential new MySQL users, share knowledge and expertise. We want to inform the visitors about what's new at MySQL and how they can get more information and help. If you have a solid MySQL background, are familiar with the various MySQL information resources (e.g. the DevZone, Forge, Forums, Mailing Lists, Planet MySQL) and enjoy talking to other users, we would like to hear from you! If you're interested in participating at the Guru Bar, please contact us at mysql-community AT sun DOT com for details. Thank you!

Monday Jun 29, 2009

FrOSCon Logo

FrOSCon, the Free and Open Source Conference, will take place on August 22nd and 23rd in Sankt Augustin, Germany. Sun Microsystems is a Gold Sponsor of the conference which takes place for the fourth time now. As for the previous years, the organizers have managed to arrange a great lineup of speakers and content. Presentations are held in both English and German — a first draft of the schedule is now available. However, it is still subject to change in some details, based on the feedback by the invited speakers.

I am looking forward to this event, especially since we're helping to organize the OpenSQL Camp subconference there, which will take place in parallel (there also is a subconference about Java this time). By the way: if you've missed the deadline for submitting your database-related talk to FrOSCon, you can still submit your talk for OpenSQL Camp until July, 19th! We look forward to your submission.

On the FrOSCon main tracks, there will be a number of MySQL-related talks as well as presentations about other Open Source projects sponsored and supported by Sun. Here's an excerpt from the schedule:

In addition to that, there are numerous other very interesting talks related to Linux, Open Source, Cloud Computing and other topics. There usually is a nice social event (BBQ) and BOFs on Saturday evening and the overall atmosphere at FrOSCon is very relaxed and friendly. So don't miss this opportunity!

Tuesday May 12, 2009

Several people commented on our last blog post or contacted us via our Twitter account, asking questions and raising concerns about migrating the MySQL user group organization to FaceBook. It seems like there is some confusion that we would like to address: you are not required to move to FaceBook. This was just a recommendation, you are of course free to choose whatever service you prefer to manage your MySQL user group. In fact, you are of course welcome to continue using Meetup.com for this! However, be advised that you will have to take care of any occurring fees by yourself from now on, as the sponsorship agreement between MySQL and Meetup.com was not renewed.

And if Facebook is not your cup of tea, there are other services that provide similar functionality. We've tried to document these on the MySQL Forge Wiki - please feel free to add your own suggestions and provide hints based on your experiences! Some of the other services that we know about include:

 In any case, wherever your user group's new home will be, please ensure to update the List of MySQL User Groups on the Forge Wiki! Thanks.

Monday May 11, 2009

Background

For several years, MySQL User Groups have been organizing their meetings with Meetup.com, a service that simplifies event management. However, MySQL User group organizers received a surprise message from Meetup.com a few days ago.

We were all taken by surprise by Meetup's sudden announcement and allegation that MySQL "did not want to sponsor" the users groups, because there is a valid agreement between MySQL and meetup.com. The agreement is still in effect, ending on June 10, 2009.

Apparently, there was some miscommunication inside Meetup.com, because the group organizers received a message stating that they should now pay for meetup services, which they used to get for free, thanks to MySQL sponsorship.

It took us a few days to track the origin of the misunderstanding, and when we thereafter got in touch with meetup.com, we learned that their business model has changed.

Moreover, they would no longer accept sponsorship agreements like the one we have had in place so far.

Current situation

Meetup.com's business model differs considerably from before.

This is the summary description of how the sponsorship works, as received from meetup.com:

"All organizers will need to pay their Meetup subscription fees and through sponsorship can receive financial support from participating in a sponsorship."

Without sponsoring, each MySQL User Group would end up spending 12 US dollars a month, or 144 dollars a year, for the ability to use Meetup.com's services.

What now?

MySQL User Groups are obviously free to use any service for event management and invitations. However, as Meetup.com has terminated our agreement, we in Sun's MySQL Community Team will no longer sponsor nor recommend the usage of Meetup.com for our User Groups. In this sense, while Meetup.com's announcement that MySQL did not want to sponsor the fees was originally not true, it has now become reality.

That said, we want to thank Meetup.com for graciously hosting MySQL groups so far. It's been a great service! We wish Meetup.com good luck with their new business model. And obviously, any user group that wishes to stay with Meetup.com is free to do so, but in that case, they will be responsible for the fees themselves.

The Community Team recommends the MySQL User Groups to manage from now on their user group invitations with Facebook. We've been in contact with Facebook on this, and they're thrilled at the idea of hosting MySQL groups.

And as you know, their service is free of charge.

We know such a migration is going to be a strain for many of you, and for this reason Colin has prepared an article to assist you in your migration (It's in Colin's blog ).

If your group has been inactive for a while, this might be a great time to re-invigorate your users with a change in scenery!

If you need a mailing list for your user group, we will gladly assist anyone who needs a dedicated list, like we've done for several groups before: http://lists.mysql.com/#ug.

The main point is to keep the groups working, and to keep meeting other users, regardless of the system used to spread the news.

If there are practical problems related to your migration, please let us know. If you would like to use different networks to organize your group, such as in particular Xing for German speaking MySQL User Groups, feel free, and let everyone know.

In particular, make sure to update your Group's whereabouts on the MySQL Forge Wiki.

Happy Meetings!

Wednesday Mar 18, 2009

If you liked the article on QA before releasing, you may want to mark your calendars for this session at the MySQL Users Conference and Expo 2009, where Omer BarNir and Trim Pershad will tell everything about Software Quality and Testing in MySQL.

Trim and Omer are veteran QA engineers, whose main goal is to improve the quality of MySQL products. Their session will tell you how the QA process evolved and what is going on right now.

MySQL Conference & Expo 2009

Thursday Feb 12, 2009

FOSDEM, the Free and Open Source Software Developers' European Meeting

Now that FOSDEM 2009 in Brussels, Belgium is over, it's about time for a conclusion/summary. I've been to FOSDEM for about five times as both an attendee and speaker, but this year I was much more involved. On Saturday, I gave a lightning talk about "Why you should use Bazaar for maintaining your OSS project". On Sunday, I gave a talk about "MySQL High Availability Solutions" in the main conference track. Both went fairly well and there was good feedback from audience. I've uploaded the slides for both talks to the FOSDEM 2009 page on the MySQL Forge Wiki, video recordings of the sessions should be available on the FOSDEM Video Recordings page soon.

We had a project stand that we shared with the OpenSolaris project, and it was particularly nice to finally meet Roman Strobl in person - he is a former NetBeans evangelist, now OpenSolaris evangelist who blogs on The Observatory. We had quite a lot of visitors stopping by at the desk. I would like to thank Walter Heck and Santo Leto in particular for their outstanding support with manning the desk!

On Sunday, we had a MySQL Developer Room with a full schedule of talks. We had to make some last minute changes to the schedule, one speaker had to cancel his talk on short notice due to a family emergency and we decided to change to topic of Kaj's talk into an interactive Q&A session to address the recent developments that happened that week. The room was usually packed for every session (~70 people), and it seems like both the attendees and speakers had a great time. The slides are now available from the MySQL Forge Wiki.

On this page, you will also find links to related articles and blog postings about the MySQL activities as well as links to pictures - feel free to add other pointers that you are aware of! I would like to thank all speakers for their excellent contributions, especially our volunteers from the MySQL Community: Roland Bouman, Kris Buytaert, Vladimir Kolesnikov and Jurriaan Persyn. Keep up the great work!

In summary, I think the MySQL DevRoom and project desk were a great success and we should have one next year, too (and maybe on other conferences as well). However, there are several things that could be improved for next year. My lessons learned:

  • Try to avoid last-minute changes to the schedule after the conference brochures have been printed
  • Align the session times with the main conference sessions, to allow easier transition and avoid overlap
  • Appoint a moderator that keeps track of the DevRoom schedule and takes care of the speakers and Q&A parts
  • Hire/appoint someone to record the sessions on video
  • Don't schedule yourself for booth duty, if you are also a main track speaker and DevRoom organizer
  • Take some time to properly introduce and brief all volunteers about activities and people involved
  • Make sure that volunteers that offered to help out with booth duty actually show up and are available, keep a printed copy of the booth schedule on the table
  • Provide free drinks and snacks for the people on booth duty
  • Set up a proper demo system for showcasing applications in advance, don't rely on Internet connectivity on site
  • Have more MySQL-branded merchandise/schwag to hand out
  • Have more info material/leaflets about the relevant offerings available, in the appropriate language
What else do you think can be made better next time? Please let me know. Thanks!

Tuesday Feb 03, 2009

MySQL & Open HA Cluster
A while ago we published an interview with Detlef Ulherr and Thorsten Früauf about Solaris Cluster / OpenHA Cluster on the MySQL Developer Zone.

We received a number of followup questions from our readers, requesting more technical background information. For example, Mark Callaghan was wondering about the following:

  • How is failure detection done?
  • How is promotion of a slave to the master done after failure detection?
  • How are other slaves failed to the new master?

I asked Detlef to elaborate some more on the technical details of this solution. Here's his very exhaustive reply, thank you very much, Detlef!

I would also like to point out that he'll be speaking about Solutions for High Availability and Disaster Recovery with MySQL at this year's MySQL Conference & Expo in Santa Clara, which will take place on April 20-23, 2009.

But now without further ado, here are Detlef's answers:

[Read More]

Thursday Jan 15, 2009

By Giuseppe Maxia

The Data Charmer, a.k.a. The Wizard, is a free lance database consultant, with a long career in several IT fields. He is well known for his Perl and SQL expertise,although he is proficient in several other languages, such as C++, shell scripts, and Italian.

He has a split personality, one of which lives in virtual space and time, floating around UTC+1. The other (or the others, as there is a dispute about how many they are) is less documented and some people believe it to be fictional. He teaches Creative Biography at the University of Euphoria, CA (also known as Euphoric State).


G.M. Hello, D.C. Thanks for agreeing to be interviewed. I'll start with a question that most people ask. Who are you?

D.C. This is not really a question I'm willing to answer. Besides, the answer would be misleading. In the Internet age, I can be several people at once. Even presenting myself with the same name, I would be known as a different kind of individual in each place I appear. If I discuss philatelic matters in a specialized forum, they won't be interested in my involvement with the Perl community, thus I keep separate names for different places.

G.M. Ah! You're a philatelist, then?

D.C. No. That was just an example.

G.M. You have been associated with a few names in the IT field. Some have even said that you and I are the same person. What is your comment on such allegation?

D.C. Believe it or not, this question can't be answered in full. I may well be a different person when this interview is over. I could even be you, even though I recall many times when you have come to me for help, but the matter of identity is not compelling. I'm content with my fuzzy definition of a hyper space entity.

G.M. Ok. Let's move with more definite matters. What's your involvement with MySQL?

D.C. I started using it about eight years ago. I had a problem to solve quickly, and MySQL was available, easy to install, and it fit the bill

wonderfully. Then I found out that it was the right tool for a whole range of medium to high level problems, and I started using it instead of other more famous databases, despite the wide criticism from most Cargo Cult programmer, who claim that MySQL is not a real DBMS because it lacks this and that feature.

G.M. Whoa! Hold down. That's a mouthful. What's a Cargo Cult programmer?

D.It's a funny, but very effective concept introduced by Richard Feynman in regard to science. He recalls that during the WWII in some Pacific islands the inhabitants observed American soldiers gesturing on an airstrip when military cargoes were landing, carrying every sort of goods. When the war ended and the troops left, the natives tried to recreate the conditions for the cargoes to land. A man with half coconuts on his ears wandered the airstrip, waving wooden pads, while others inspected the horizon from the height of makeshift control towers. But of course no cargo arrived as a result of their efforts. Likewise, there are many programmers who solve their problems with cut-and-paste, without having any idea of why the original code was structured in that way.

G.M. Are you telling me that all MySQL critics are Cargo Cult programmers?

D.C. No. But a real good share of them are. Why? It's a matter of statistics. The Internet has dozens of millions of dynamic sites. Behind each of them there is some sort of database, but that does not mean that all their users are database experts. On the contrary, most web developers in my experience, know very little about databases, and they use databases through wrappers. If you ask those people which database they are using, they may tell you it's 'Java' or some trendy CMS brand. I came across many programmers who were using Oracle through one of such wrappers and they spent much time explaining to me why Oracle was the right choice for the task straight from some marketing ad. However, I was auditing their code, to find the reason for a performance bottleneck. They wanted to show me the interaction with Java classes that handled the database. Instead, I looked at the database logs, and I found an impressive number of commits and no join clauses in their select statements. It turned out that they were not using database transactions at all, and they were emulating transactions with client code. And what's worse, their code was emulating joins as well.

G.M. This looks too ugly to be a generalized case. Surely the majority of database programmers are not like that.

D.C. I would like to share your optimism, but my personal experience tells me exactly the opposite. Most database programmers have little clue of relational theory, and thus most performance and scalability issues are just a problem of lack of basics.

G.M. Perhaps we have gone too far from the main subject of this interview. Let's try to get back on track. How did you get involved with databases?

D.C. I had my first encounter with SQL about twenty years ago. I attended an Oracle course and I started using it at my employer's. A few years later I was introduced to formal relational theory during a long course in structured analysis. Before that , I knew about relational theory as a necessary complement of SQL, not the other way around. Once I got acquainted with formal relational theory, I found out that it suited me quite well. I can design data in 3NF just out of my head. Thus, when I see a beginner struggling with a 1NF or even breaking it, I can see immediately what's wrong.

G.M. After your initial acquaintance with Oracle, have you used it a lot?

D.C. Not really. At my employer's it was ruled out after a few months, in favor of a home made solution. I'm talking about mainframe applications, which were still common at that time. Oracle was supposed to replace a huge non-relational database that was designed in the 1960s and it was showing its age. Personal computers were not as ubiquitous as they became after 1995, and the idea of using a PC for a database was considered sort of bizarre by the few professionals of this field. There was no Linux and no widespread open source yet, and MSDOS was by all practical purposes the only choice of OS in the market. In these years I managed to migrate the mainframe database to a relational one, using a PC based API for a RDBMS written in C. There was no MySQL in sight yet, and that wonderful API did not have a SQL interface. I wrote a simple wrapper that sounded like SQL and with that I converted the existing financial procedures in the new system. Since then, I have been always curious about the internals of database system. When I found MySQL, with its open code, it was love at first sight.

G.M. Let's skip to a related subject. You said that at the end of the 1980s MSDOS was the only choice. What's your take now? Which is your OS of choice?

D.C. As a MSDOS user, I became quite an expert at circumventing its limitations, the biggest of which was lack of multitasking. Although multitasking processors had been available for a few years (80286 and 80386) there was no way of exploiting that. When Windows 3.1 hit the shelves, offering a simple multi tasking, I grudgingly embraced the new system. It was clear from the beginning that most of the knowledge accumulated during the years of MSDOS usage were nearly useless with Windows 3.1. Which had its problems as well. And so I waited for the next major miracle, Windows 95, announced as the ultimate problem solver. What was ultimately true though, was the realization that most of the experience I had with MSDOS and Windows 3.1was now going down the drain. It seemed that Microsoft was making a point of discarding the ones who had invested time and money to become proficient with its products. In the meantime, in 1993 I had a serendipitous encounter with an alternative operating system. Its name was Linux, and it could do multitasking much more efficiently than Windows. I started using it for some projects, and I appreciated its powers. In 1999, when it became clear that the successor of Windows 95 were going to make me discard yet again my previous knowledge, I began to use dual boot computers with Linux and Windows. In 2001, I abandoned every surviving hope of seeing a usable OS from Microsoft and since then I only have full Linux installations in my machines. This year I started using a Mac Laptop, and to my delight I could apply most of my Linux expertise to this OS. I am currently using three Linux boxes for sheer power and development, and the Mac for mobility.

G.M. What are your tools of the trade? Editors, and so on?

D.C. I'm a command line guy. I do my text manipulation from the shell prompt. Between shell built-in commands and Perl I do most of my work. My editor of choice is vim. I know that there are more powerful ones, but vim (or at least 'vi') is ubiquitous. If you can use it, you can work everywhere. Vim is to editors what MySQL is to databases.

G.M. You have been called a wizard, a guru, a hacker. How do you describe yourself?

D.C. I am an experienced user of tools and I'm always curious about how things work and eager to learn new things. I don't call myself a hacker, but I don't object being called that. About wizard and guru, well, it makes me smile when I realize that I can still surprise someone with my old tricks.

G.M. If you could leave one piece of advice into the universal bag of tricks for technology newbies, what would your advice be?

D.C. Be curious.

Thursday Dec 11, 2008

We’re very excited to see MySQL 5.1.30 make it to GA status and are very proud of the work that the MySQL engineering team has done to get MySQL 5.1 out of the door.

Maybe you’ve seen some claims by others in the MySQL community that MySQL 5.1 runs slower than MySQL 5.0. Maybe you’ve also seen some claims by others in the MySQL community that MySQL 5.1 runs faster than MySQL 5.0.

Guess what? They’re both right.

With database or any other hardware/software performance tests, you’re always going to see different results because there are *so* many variables that go into the equation.

That being the case, I thought I’d share a little of what we in the MySQL QA group have seen on the 5.1 vs. 5.0 front. Part of our job in MySQL QA is to routinely test each MySQL build and compare it to prior versions before release, to see if any performance regressions have occurred and I would like to share the most recent results with you.

We did multiple tests with dbt2 benchmark on 5.1.30 GA and 5.0.72 and the charts below represent the outcomes with different settings for innodb_thread_concurrency parameter. Finding the optimal setting for this parameter largely depends on hardware, OS and workload.

In our case we ran CPU bound scenario (dbt2 benchmark with 10 warehouses that fits into buffer pool) and 
varying innodb_thread_concurrency parameter by setting it to: 0, 8, 16, 1000.

Chart 1.Results per threads for the 5.0.72 and 5.1.30
innodb-thread-concurrency=1000

Chart 2 Results per threads for the 5.0.72 and 5.1.30 innodb-thread-concurrency=8

Chart 3.Results per threads for the 5.0.72 and 5.1.30 innodb-thread-concurrency=16

Chart 4. results per threads for the 5.0.72 and 5.1.30 innodb-thread-concurrency=0

 

As seen above, with  innodb_thread_concurrency of 8,16 and 1000, MySQL 5.1  out performs 
MySQL 5.0, by 21-41% depending upon the threads we use. This also demonstrates improvements 
in scalability in 5.1
 
The best throughput for this combination of hardware, OS and workload for both 5.0 and 5.1 servers were 
achieved with innodb_thread_concurrency=0. There is very little difference between 5.0 and 5.1 in this test
(5.0 has very slight edge over 5.1) 

Additionally we also run other tests (sysbench) prior to every release. For 5.1 GA release, we found that in some cases 5.1 performed better, while in some others there was a dead heat between 5.0 and 5.1.In few others we found 5.0 winning over 5.1

So what does it mean?

To summarize, the performance numbers will always vary when running benchmark tests based on variety of factors, so the prudent thing for you to do is download the latest MySQL 5.1 for your platform, put it through the wringer in your environment, and go with what works best for you

Test Details:

Hardware: 
  - dl360-g5
  - Intel x86_64 (Dual Quad-Core Xeon 5345)
  - RAM 16GB
  - RAID: Smart Array P400i/ 1+0, CACHE 256MB, 4 SAS Disks 10000RPM
 
OS:  
  - SLES 10
  - kernel - 2.6.16
  - fs - ext3

dbt2 test details:
  - version of dbt2 test - 0.37
  - scale factor - 10 warehouses
  - zero "think time" (-z)

How we run the test:
 - each run performed 3 times so represented results are average values 
 - test sequence for each run looks as following:
   - copying data files prepared in advance
   - start server
   - start test
   - test for 15 mins
   - stop test
   - stop server
 
The following packages were used:
   - 5.0.72 x86_64-glibc32
   - 5.1.30 x86_64-glibc32

The following InnoDB options were used:
   --innodb_status_file=0
   --innodb_data_file_path=ibdata1:100M:autoextend
   --innodb_buffer_pool_size=2G
   --innodb_additional_mem_pool_size=20M
   --innodb_log_file_size=650M
   --innodb_log_files_in_group=2
   --innodb_log_buffer_size=16M
   --innodb_support_xa=0
   --innodb_doublewrite=0
   --innodb_thread_concurrency=<0,8,16,1000>
   --innodb_flush_log_at_trx_commit=1
   --innodb_flush_method=O_DIRECT

About the author

Trim Pershad manages the MySQL database System QA team, since joining the company over a year ago. He also has extensive prior experience in testing databases Part of his team's responsibility is to test the MySQL database and compare performance results with earlier releases to identify any performance regressions.

There is a new blog in the MySQL Community arena.

It is a collaborative podium for guest posts. We will host colleagues or community members who have no blog and need a temporary place for their message. The first experiment was successful, and we decided to have a more stable place for it.

We start today by hosting Trim Perhad, System QA manager of MySQL, who presents some interesting performance results.

This blog copyright 2009 by Lenz Grimmer