I spent last week at Collaborate 2012 in Las Vegas, and it was a 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 I had so much to learn from Oracle professionals and the Oracle community that could be applied in the MySQL world. For me, an indication of a good conference is when you come back inspired and full of ideas. I am inspired, tired, and full of 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 speaker/attendee count. Such big conferences have their pros and cons. The about 250 sessions that run each day present a great diversity in topics, so you have to do your homework and decide which ones 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 around 6k-7k people attended this year. People from probably every possible industry were out there (not too many web-startup folks, I noticed :) ). And that’s part of what makes it fun — you can learn how people solve complex problems in the areas with which you are not familiar. 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 know which one is his favorite.
Day 0 is a Deep Dives day at Collaborate. Deep Dive is a long 3-4 hour session that explains one particular topic in great detail. I initially went to a Deep Dive about IO tuning, which I though might be helpful in my day-to-day job as a MySQL DBA, but it turned out to be too Oracle specific. I left and went to the Real World Performance session by Tom Kyte, Andrew Holdsworth, and Graham Wood. It was the best session I’d ever attended. As it turned out later, these guys are kind of titans of the 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 several-hours-long session, which was dedicated to Datawarehouse performance, but I really enjoyed the part about OLTP performance.
First of all, they gave a live demonstration of how a test application and a 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 “Okay, how did they get this?”. After some discussion, it turned out it was not really linear and that 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 environments here at Pythian. The first one was about dynamic connection pool. It 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. You need to persuade the application engineers that letting more users connect to a db server that 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 the code never reaches that point and 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’s usually difficult to debug, but now I have a hint for developers on where to start looking. Anyway, it was a great session with a lot of insights. 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 the 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.
This week was an exciting one. 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 an industry that is much more mature than MySQL and get some insights about how things are done in the Oracle world, I would say that it is definitely worth going.