Showing entries 601 to 610 of 693
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: drizzle (reset)
Yet another new Drizzle plugin type: replicator

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.

Is your garage internet enabled?

Real noisy fucker. So loud, that if it’s in the garage but the back door is open, I still hear it.

Being used for drizzle dev on Solaris… although a switch to OpenSolaris or Linux is likely imminent. Straight Solaris 10 is just too annoying.

Me at the Hackfest at OpenSQLCamp


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.

Temporary tables in any engine….

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]
I don’t read code comments

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.

Where is the innovation?

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]
Hold me, I’m scared….

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.

Open SQL Camp

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]
The Drizzle Snowman - PlanetMySQL fail

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.

The Drizzle Snowman - WIN!

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]
Showing entries 601 to 610 of 693
« 10 Newer Entries | 10 Older Entries »