Archive for the ‘Random’ Category
In the MySQL ecosphere there is an ecosystem of tools. Like real-world ecosystems, the “creatures” in the MySQL tools ecosystem can be classified and organized by a taxonomy. There are already multiple taxonomies of software bugs (e.g. A Taxonomy of Bugs), but as far as I know this is the first Taxonomy of Database Tools. A taxonomy of database tools serves useful purposes, as discussed in the previously linked page. For me, the most useful purpose is the high-level ecosystem view which I use to compare MySQL tools to Drizzle tools. In so doing, one sees clearly how the MySQL tools ecosystem is thriving whereas the Drizzle tools ecosystem is just budding, so to speak. For other people, I imagine two overarching interests in a taxonomy of database tools.
First, by laying out the ecosphere in a simple, organized, and comprehensible fashion, a taxonomy of database tools can permit a user (DBA, sysadmin, etc.) to see how well they are “tooled”. For example, when I gave a presentation on pt-table-checksum at PLMCE 2012, I was surprised to learn how many people never used a tool to verify replication data integrity. I did not bother to ask why, but I suspect it is because they were not aware that such tools existed. By looking at this taxonomy of database tools, some users might discover a new type of tool of which there are already many examples.
Second, a taxonomy of database tools is interesting for developers because it reveals where a database server has missing capabilities that users compensate for with tools. Point in case: pt-table-checksum is used to verifying replication data integrity because until MySQL 5.6 this capability did not exist in the database server. It is debatable whether all types of tools could be implemented natively in a database server; in theory, they probably could. This debate becomes a practical concern for modularly-designed database servers like Drizzle because in my humble opinion it is far easier to write plugins and thus tools-as-plugins for Drizzle than for MySQL.
This Taxonomy of Database Tools is still a work in progress. A lot of the descriptions need to be expanded, traits refined, and more examples added. If you do not agree with its organization, you can suggest a change, or develop your own taxonomy. In any case, I will continue to refine this Taxonomy of Database Tools to see where it leads and what it reveals.
PT BOF at PLMCE 2012, or: I submitted a session for Percona Toolkit Birds of a Feather at Percona Live MySQL Conference & Expo 2012. You should BoF too; hard deadline is Monday, March 12th: submit a BoF session, or submit a Lightning Talk.
This is far from deeply technical but little things that should be simple but aren’t annoy me. I found that MySQL Sandbox
--prompt_body don’t “just work.” I wanted the prompt to be
mysql \v> . So I tried:
make_sandbox_from_source /mysql/src/mysql-4.0.30 single --prompt_body=' \v> '
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `make_sandbox /mysql/src/mysql-4.0.30/4.0.30 --prompt_body= \v> '
Maybe my shell knowledge is more terrible than I realize so I verified that ‘
\v> ‘ does not need special escaping:
echo ' \v> '
Ok, so clearly it’s the fault of
make_sandbox_from_source. I tried and tried to do this on the command line but failed. I decided to try
That didn’t work either; it created the prompt
'mysql4.0.30>. The leading space for
prompt_body is ignored and there’s an errant apostrophe at the start. The final working version is:
You can’t see it but there’s a trailing space after “mysql” for the
prompt_prefix which is not ignored (unlike leading space for the
There’s very few spots left for attending OpenSQL Camp 2009. I’m going, along with several other Percona employees. It’s fun stuff; you should go. I’m not really the social type so I’ll probably be sitting off to the side somewhere coding.