Collaborate 2012 as seen by a MySQL DBA
May 2, 2012 / By Danil Zburivsky
I spent last week at Collaborate 2012 in Las Vegas and it was really great experience in many ways. I am a MySQL DBA and have been working with MySQL for most of my career, so Collaborate didn’t seem like an obvious choice. It turned out that there are so many things that I can learn from Oracle professionals and the Oracle community, which can be applied in MySQL world as well. For me an indication of a good conference is when you come back inspired and full of ideas. I am inspired, tired and have some ideas, which means it was time well spent.
Collaborate is huge. I can only compare it to the MySQL Conference in Santa Clara, which is no where close in terms of its speakers/attendees count. Being so big has its own pros and cons. There is a great diversity in the sessions topics and there are about 250 sessions running each day, so you have to do your homework and decide which one you would like to attend. Walking around the Convention Center and deciding which session you like doesn’t work here, because it will probably take you an hour to do so. There are many sessions but, obviously, there are many more attendees. I was told there were around 6k-7k this year. There are people from probably every possible industry out there (not too many web-startup folks, I noticed :) and it makes it a part of the fun — you can learn how people solve complex problems in the areas that you have never dealt with. On the other hand, you will probably not meet, let’s say, Monty (pick up analog from Oracle world) at the lobby bar, unless you are very lucky, or you know which one is his favorite.
Day 0 is a Deep Dives day at Collaborate. Deep Dive is a long 3-4 hour session which explains one particular topic in great detail. I initially went to Deep Dive about IO tuning, which I though might be helpful in my day to day job as MySQL DBA, but it turned out to be too Oracle specific, so I left and went to Real World Performance session by Tom Kyte, Andrew Holdsworth and Graham Wood and that was the best session I ever attended. As it turned out later, these guys are kind of titans of Oracle Performance world, but their session was generic enough that I could relate many things to my own MySQL experience. I missed the first part of the this several hours long session, which was dedicate to Datawarehouse performance, but I really enjoyed the part about OLTP performance.
First of all, there was a live demonstration of how a test application and database perform under certain conditions and you could actually see how throughput changes when you tune this or that parameter. There was a curious moment when Mr. Kyte showed a chart with a linear scalability and I was like “Ok, how did they get this?”. After some discussion it turned out it was not really linear and it was true for their carefully designed test application. So the Universal Scalability Law still makes sense. The OLTP performance demonstration had 2 examples, which I often see when working on customer’s environments here at Pythian. The first one was about dynamic connection pool which demonstrated that when your database server is overloaded and connections are not returned to the pool quickly enough connection pool decides to… add more connections! This makes the database server even more overloaded etc. You need to persuade application engineers that letting more users to connect to a db server which is crawling does not really help. You need to do the opposite: reduce the number of available connections in the pool. Another example was about proper exception handling. Sometimes, if exception is not being handled properly, the connection is never closed, because code never reaches that point and it is left hanging there. This can result in transactions holding row locks for hours or even days. I have seen this so many times and it usually very hard to debug, but now I have a hint for developers on where to start looking. Anyways, it was a great session, with a lot of insights and I would definitely love to see the full version.
Over the next 3 days I learned about Oracle Exadata (surprisingly, there are some similarities with what the guys at Infobright do) and other Exa-machines, I got an idea of what R is (worth a closer look), how to measure seniority of a DBA in a proper way, what SCAN is and many other things. Unfortunately the MySQL Track was not very exiting. Most of the sessions were explaining MySQL basics to Oracle DBAs which makes sense if you take into account that they are the primary audience there.
It was an exiting week. I had a lot of fun and met many amazing people. If you ask me if a MySQL DBA should go to Collaborate to learn something new about MySQL, I would probably say there is no reason to do so. But if you ask me if you should go to learn from experts in industry which is much more mature than MySQL and get some insights about how things are done in Oracle-world — it is definitely worth going.