krow just asked me to add another plugin
type to Drizzle, for pluggable replication, and so I have, and
it's pushing up to Launchpad now to merge with the
mainline.
The plugin type is actually called "replicator", to avoid
conflicts with the existing source files called
"replication.*"
The existing replication system in MySQL 5 is... well. Like the
old joke about if you like laws or sausages, you probably
shouldn't watch them get made, if you need to think that MySQL 5
replication is rock solid, you probably shouldn't read the source
code. Heck, a serious bug was discovered in it at OpenSQLCamp a
few weekends ago, just by projecting a random page of code on the
wall and having a dozen pairs of eyes read it.
OpenSQLCamp - hackfest
Originally uploaded by datacharmerI need a haircut, tho not as short as
Jay Pipes, seated next to me.
I think at that moment I was either working on more improvements
to the errmsg plugin interface to Drizzle, or else I was adding a
new plugin type to enable PBXT's blob streaming protocol.
Well… nearly any engine.
I have a plan forming in my head to add some hooks to engines to help with creating temporary tables (the ones created while executing a query, not ones created during ALTER TABLE).
Currently, if you ALTER TABLE and we require a temporary table, it’s still database.table but we generate a table name that’s small, unique and begins with “#sql”.
I’ve changed some of the handler interface to accept two strings (database name, table name) instead of one “path” that may (or may not) end in “.FRM” and may (or may not) begin with “./” and may (or may not) use the “/” separator between database and table name (hint: on win32, it’s sometimes “\”).
So ha_delete_table is now: ha_delete_table(db, table_name). Sanity!
(this has the downside of being a incompatible change that doesn’t break the build as there seems to be no way in C++ to say “derived …
[Read more]They are wrong.
Misleading at best.
Reworking parts of Drizzle (which came directly from MySQL) it can get painfully obvious. Things like “afaiu” and “???” appear in more than one place (that is if the comment isn’t just obviously wrong).
A comment merely states what one person thought the code did at some point in the past. It has no relation to what the code actually does now.
The 2009 MySQL Conference has closed it’s submissions for papers. This year the motto is “Innovation Everywhere”.
Last weekend’s Open SQL Camp in Charlottesville, Virginia, we had the chance to talk about the movements in the MySQL ecosystem. I was impressed to get the details of the Percona MySQL Patches, but focus is still in 5.0. (Welcome to the Percona team Tom Basil) Our Delta is attempting now to integrate patches into various MySQL branches. There was an opening keynote by Brian Aker from Drizzle, and Drizzle team Jay Pipes and Stewart Smith on hand. It was also announced that MySQL 5.1.30 will be GA, available in early December.
But these …
[Read more]From ha_myisam.cc:
/*
TODO: switch from protocol to push_warning here. The main reason
we didn’t
it yet is parallel repair. Due to following trace:
mi_check_print_msg/push_warning/sql_alloc/my_pthread_getspecific_ptr.
Also we likely need to lock mutex here (in both cases with
protocol and
push_warning).
*/
protocol->prepare_for_resend();
protocol->store(name, length, system_charset_info);
protocol->store(param->op_name, system_charset_info);
protocol->store(msg_type, system_charset_info);
protocol->store(msgbuf, msg_length,
system_charset_info);
if (protocol->write())
sql_print_error(”Failed on my_net_write, writing to stderr
instead: %s\n”,
msgbuf);
return;
Hopefully this will serve as a good TODO list to go and fix at some point.
Last weekend I attended the OpenSQL Camp in Charlottesville, VA. There was a great turnout, and Baron did an excellent job organizing it! I saw a few folks I met at OSCON over the summer, along with meeting many new people. What a great group - intelligent, fun, and know how to get things done. I had some great conversations, especially with Brian, Stewart, Arjen, Patrick, Mark, and Jay. The food was great too, I was a bit worried about …
[Read more]If you went “wtf” at The Drizzle Snowman - WIN! - Jay Pipes on PlanetMySQL suddenly ending at “create table”, you should click through and see the unicode character for a snowman.
In other fun, we’ve also created tables with the name of cloud symbol, umbrella symbol and umbrella with rain drops symbol. All of these seem rather appropriate for Drizzle.
Stewart, Brian and myself are having a little fun this morning. One of the niceties of having real UTF8 support in Drizzle is now we can really fun table names. Behold, the glory of Drizzle:
drizzle>> create table ☃ (a int not null); Query OK, 0 rows affected (0.01 sec) drizzle>> show create table ☃\G *************************** 1. row *************************** Table: ☃ Create Table: CREATE TABLE `☃` ( `a` int NOT NULL ) ENGINE=InnoDB 1 row in set (0.00 sec)
Yep, that's a snowman.
MySQL? Well, not so much:
mysql> select @@character_set_system; +------------------------+ | @@character_set_system | +------------------------+ | utf8 | +------------------------+ 1 row in set (0.00 sec) mysql> create table ☃ (a int not null); ERROR …[Read more]