ramblings on PHP, SQL, the web, politics, ultimate frisbee and what else is on in my life
back

MySQL conf notes, Frisbee and new captcha

Actually let me address the items in the topic in reverse order. I have added support for recaptcha. I actually never got spam on this wiki, but I got plenty of it on my wiki (the observant of you will note that my wiki has also changed url as of today, but the old address will just redirect). So I decided to give this a try. I also finished the last round of he Swiss Coed Championships in Ultimate Frisbee this weekend. Unfortunately we did not manage to upset the favorites in the final, so we placed 2nd. I wasn't really happy with my throwing. I do know why this happend, so I will have to mark it as lesson learned. But I made a few nice dives which were caught on video, which I will hope will make it into the web soon.

Finally I made a few notes while attending the MySQL developer conference in Heidelberg last week. This was the first internal developer conference to which non MySQL AB people were invited. It was a very pleasant atmosphere. Before attending I did have to promise to keep certain things confidential, but the other things I can mention. Here is essentially what I send to the Optaros internal tech-gen mailinglist. As you can see from my notes the buzz of the conf was MySQL proxy. Thanks again to MySQL AB to invite me and let me participate on short notice:

  • MySQL query optimizer is not really made to handle prepared statements well. Subquery optimizations and hash joins will have to wait for 5.2
  • Replication allows different schema on the master and slave. Data type mismatches cause automatic type casts and you can have additional column on the master or on the slave (but this might give you problems when you are using row based replication without a primary key - so just use a primary key :-)). Multi threaded writer support on the slave is likely to be added in December (not sure when it will get into a GA release)
  • Online backup is coming in MySQL 5.2 (or whatever is coming after 5.1)
  • MySQL Proxy allows you to extend SQL, by intercepting whatever string you are sending to the server and turning it into proper SQL. The proxy can operate on the data going to the server as well as the data coming back. You can load only one script at a time and only at start up, however there are solutions to load and/or chain scripts via LUA scripts
  • MySQL forge will soon see a major update which will make it all 2.0 and stuff :)
  • MySQL doc team has gone in and upgraded their changelog to docbook, to make it possible to extract all sorts of information, like in what version was a config option or feature added, when was it deprecated. The same applies to bugs etc. They are also working on providing tools to get a better idea of the implications of migrating from one version to another (say 4.1.21 to 5.0.17). Most of this will only be available via the Enterprise service, but all the data and tools are available as open source. Their tools are available via svn.
  • MySQL AB is committing to making PHP's PDO driver for mysql rock solid. A developer will be assigned who will fix up the current code, add whatever mysql specific features make sense and add more tests (which should benefit the other drivers as well). On top of that there is a good chance that some efforts will be made to beef up the PDO docs as well.
  • LOB streaming server will be http based. So in theory one could serve the blob’s directly via a a proxy to browser clients. First connector to get support is likely JDBC. Chunked reads are probably coming later. Find more info over here.
  • MySQL proxy does load balancing by directing traffic to the server with the least open connections. But its customizable (especially when doing fail over). Solve single point of failure issues with linux heartbeat. Tests in a local network gave an overhead of 0.4ms. Uses LUA, super lightweight scripting language. Query rewriting can help in doing fake SQL queries like “EXPLAIN UPDATE .. WHERE”. Handle SQL dialects. Automatic profiling (via EXPLAIN or SHOW SESSION STATUS) and statistics collection. Automatic query cache optimization is also possible. Application/user auditing. Connection pooling for PHP. Read splitting (being aware of last insert id), read write splitting as well as write multiplexing. Handling replication lag (making a slave preferred to ensure its a good candidate for master failover). “Virtual tables” implemented in lua. Detect which query is causing contention on the server that is blocking a given query.

Comments



Re: MySQL conf notes, Frisbee and new captcha

Ok, I couldn't resist - the captcha seems to work. :)

Oh, and I can't wait for online backup in 5.2.