The FederateX Pluggable Storage Engine for MySQL, version 0.2 has
been released! I've started to go through a list of bugs in
Federated that need fixing, and for this version, I've fixed bug
30051.
The cause of this bug was due to the removal of
"check_foreign_data_source" which used to check the connection
and existence of the table being referenced in the federated
connect string or server definition during "CREATE TABLE". Since
then, a nice clean convenience method "real_connect" has been
added. I simply modified it to take two arguments: a share, and a
simple flag saying if the method call is the result of create
table. Before I modified this method, the class share was being
used which is made available though the call of "get_share".
However, when "CREATE TABLE" is called (ha_federatedx::create),
get_share hasn't been called, hence …
Back when I was doing a lot of work with Oracle, I learned to lean heavily on the SYSTEM views - Oracle’s equivalent to the INFORMATION_SCHEMA database. These views can really help you when it comes to writing dynamic SQL in stored procedures, or just taking quick shortcuts while you’re writing code. Or, if you’re [...]
The March (pun!) continues. Bill Boebel, CTO of Mailtrust (Rackspace’s mail division), saw my previous announcement and asked me to present CouchDB as part of their Racklabs series and I happily agreed. This is a very cool opportunity to meet a bunch of very smart engineers; I am eager to go.
On Monday 17th (St. Patrick’s Day) at 6pm Eastern Time, we meet at Mailtrust’s office. See the announcement for directions and details. There will be pizza and beer afterwards. The talk is open …
[Read more]I wrote a User-Defined Function that implements the FNV (Fowler-Voll-No) hash function for MySQL. I’m not the first person to do this – in fact, I was inspired by the Google patches for MySQL. But my implementation is a little bit different from most, in a very important way that leads directly to much higher performance, especially suited for the Maatkit tools. A bit of background: FNV hashing is a very fast hash algorithm that operates in fixed memory.
I was recently asked a question by someone who had attended my Shmoocon talk entitled “Why are Databases So Hard to Secure?”. PDF slides are available (1.34 Mb). I was going to put this into a more formal structure, but the conversational nature works really well. I would love to see comments [...]
I often get accused, especially by my European friends, of not being a true geek for two reasons: I don't carry an expensive camera with me at all times — nice Fisheye lens, Kaj! — and because I don't indulge in video games. Well, for all you Jay-ain't-a-true-geekers out there, I offer two photos today to prove my geekhood.
As some of you know, I live in Columbus, Ohio, with 2 dogs, 2 cats, and my lovely wife Julie. Last night, we got hammered with the most snow we've seen in March in over 40 years. By my estimation, there is about 18 inches of snow on the ground. The photo to the right was taken this morning, while the snow was still coming down, from my back door. You can see my garage and the ground covered in snow, but the most telling part of the photo is the amount of snow on the table on our back deck. …
[Read more]No, its not alphabet soup. Just some notes from the session at the Sun Tech Days. I’ve not looked at DTrace much (my only look into instrumentation, has been from SystemTap, which doesn’t deal with applications), but plan on doing so soon… I’ve managed to get OpenSolaris Developer Preview 2 installed in VirtualBox, so it can only start being more fun from here…
Want to learn more about DTrace and MySQL? Then come to the MySQL Conference & Expo 2008, in Santa Clara, California, because on Thursday, Ben Rockwood, from Joyent, will be presenting a session on DTrace and MySQL (read the abstract, its good). The talk covers the fact that you can get useful information currently, …
[Read more]I learned something new about myisamchk. When doing a recovery of the data file, it creates not one but two temporary files. I knew about the TMD it creates in $datadir when rebuilding the MYD file but it creates a second temporary file using an old and rather annoying technique (which involves creating a file using the standard C ‘open()’ call, then deleting the file without closing the file descriptor.) I discovered this when myisamchk told me “Disk is full writing ‘/tmp/STQ3p9UF’ (Errcode: 28).” I looked in /tmp and didn’t see that file. So I did a
# lsof | grep delete
and low-and-behold, there it was. You know, as a sys admin, that really annoys me. I don’t care that it creates temporary files to do its thing. In fact, I expect it, but I at least want to know about it so I can plan accordingly. My /tmp partition only had 2.5 gigs of space and the table’s MYD was over 4 gigs in size. If I had known …
[Read more]
My employer, both MySQL and Sun, will reimburse me for my
internet connection.
I wonder if I could just buy FON routers for my favorite cafes,
and then expense them? It would let me have better and more
reliable internet access then I get thru the crappy little
wireless routers from Quest and Comcast...
One of the more interesting features of MySQL‘s JDBC driver is the fact that much of it the functionality it has it alterable or outright replacable by the end user without changing any of its code.
The network sockets can be replaced, the logging can be replaced, the usage advisor feature‘s reporting can be replaced, one can plug into connection lifecycle events (creation, destruction, autocommit state change, transaction boundaries, etc), and functionality can even be injected pre-query or post-query, all without changing a line of code in the driver itself.
I‘ll be showing how all of this works at the 2008 MySQL Conference. Some of the things I demonstrate will be for “fun“ (rewriting simple queries, supporting syntax other than SQL), other for “profit” (profiling, extrusion prevention, injecting bad behavior for system testing). …
[Read more]