The other day I found a nice surprise on my inbox. Jay Pipes asked me if I'd
like to try fixing a small bug on Drizzle. It looked pretty simple, and
the bug report included a big part of the fix. I accepted without
a doubt.
I decided to first change trans_prealloc_size from uint32_t to
uint64_t. That was done on drizzled/session.h. Then, I went to
drizzle/set_var.cc and changed
sys_trans_prealloc_size from …
Eric Lambert found some build issues with the new release of OSX today. They're real pleasing. The first is that for some reason test programs testing for fdatasync() compile and run with no problem, but when trying to then use it in the main program, it doesn't work. (because it doesn't exist) So we had to add a special test program check (ugh - thanks Apple) And then they "upgraded" readline. Except they only half-upgraded, so it has half of the newer readline interface but not the other half. The fix to this is simple.
Download and install a real copy of readline instead of the half-baked pile-of-shit copy of editline wrappers that Apple ships. Works like a charm.
You know, it's fine if you want a (wanna-be) BSD system (which is actually non-free) and all. Whatever. But if you aren't going to ship readline, then don't ship readline. OR, …
[Read more]
Baron Schwartz started a good discussion about MMM use cases that
quickly veered into an argument about clustering in general. As
Florian Haas put it on his blog, this is not just an issue of DRBD vs. MySQL
Replication. Is a database cluster something you cobble
together through bits and pieces like MMM? Or is it
something integrated that we can really call a cluster? This is
the core question that will determine the future of clustering
for open source databases.
I have a strong personal interest in this question, because
Tungsten clustering, which I designed, is betting …
<rant>
Oh dear. I was hoping that by now this would be a non-issue. It seems that many of us (including the majority of my clients) are late to the party.
People…it’s now September of 2009. Next month starts the last quarter of 2009. If you have a 64-bit chip in your server for the LOVE OF GOD please run a 64-bit operating system. And easily 90% of the servers shipping have 64-bit procs. I don’t know of any shipping dedicated servers that are running 32-bit procs but I suppose there are some left somewhere in the universe.
Do you know how difficult and costly it can be to upgrade your server to a 64-bit OS? Costly in terms of money and downtime (which may as well be money). All because you didn’t realize when you bought the server that you would ever use more than four gigs of RAM. Or you thought you might have some trouble getting your application to work with the 64-bit libraries or whatever. …
[Read more]I have several side projects when time permits and one is that of benchmarking various MySQL technologies (e.g. MySQL 5.0,5.1,5.4), variants (e.g. MariaDB, Drizzle) and storage engines (e.g. Tokutek, Innodb plugin) and even other products like Tokyo Cabinet which is gaining large implementations.
You have two options with benchmarks, the brute force approach such as Sysbench, TPC, sysbench, Juice Benchmark, iibench, mysqlslap, skyload. I prefer the realistic approach however these are always on client’s private data. What is first needed is better access to public data for benchmarks. I have compiled this list to date and I am seeking additional sources for reference.
[Read more]Mark Callaghan was just asking about what gcc compilation flags people use. (Not sure if Facebook Notes recognize pingbacks or not, so I sort of hope Mark is reading planetmysql, too)
Most of the distros build with -O2 (except for Gentoo, which compiles with as many flags as they can find) It's also the default in autoconf, the rationale being, I believe, that -O3 doesn't give discernable benefit for most things, but does require a considerably higher CPU cost during the compile. If you are, say, Debian, and you're compiling over 10k packages, streamlining the compile for the normal case is probably a great idea.
In Drizzle, however, we do override that default and build with -O3 at all times. I did some testing in our benchmark system about a month ago, mainly because I wanted to verify that -O3 was worth the extra effort that's in our autoconf …
[Read more]
Disclaimer: This blog post is about things I did on my own
free time, not endorsed by my employer.
I have been meaning to look at Gearman for a long time, but I
just couldn't find any project where I could use it.
Well, that was true until last week a couple of weeks ago, when I
started to put together Drizzle, the Gearman logging
plug-in, Perl and the Enterprise Monitor.
As I was finishing writing the agent.pl script, I thought that it
would be a good idea to split the script in at least two
components: one that would just collect the queries, and another
component that would do the processing of the log entries
(replacing the literals for "?", grouping queries by query text,
etc).
…
Disclaimer: This blog post is about things I did on my own
free time, not endorsed by my employer.
A little over a month ago, Ronald posted a blog about the different query
logging plug-ins that are available for Drizzle.
This was pretty exciting news, especially when I saw the details
that were included in the logs.
Meanwhile, a few weeks ago, I started looking at the REST API that comes with the MySQL Enterprise Monitor.
The result is that we can now see most of the information
returned by the plug-in, on the Dashboard.
…
Last week on the train to Seattle I was hacking on the new libdrizzle protocol plugin when realized I could really use a debugging console that did not require any socket communication. Since I abstracted a Client plugin in the server (Protocol class for the MySQL folks), this can easily be done by just writing a new plugin. I needed to do some refactoring with the listener plugin to not require a TCP socket/accept and instead poll any arbitrary file descriptor. This allows the the Listen plugin to create the client instance any way it wants. After a bit of hacking and cleanup, we now have this:
shell$ ./drizzled/drizzled --datadir=/home/eday/other/drizzle.data InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins. 090827 0:29:34 InnoDB: highest supported file format is Barracuda. 090827 0:29:34 InnoDB Plugin 1.0.3 started; log sequence number 8157346 Listening on :::4427 Listening on 0.0.0.0:4427 …[Read more]
As Brian mentioned, a number of us traveled up to Seattle last week to discuss the road map for Drizzle, Gearman, and memcached. Thanks to everyone who was able to make it! It was great to see folks again (Northscale guys, Robert Hodges, Padraig), and meet a couple new people like Nathan, one of the Google Summer of Code students for Drizzle. I thought I’d take a moment to mention some of the discussions related to the tasks I’m working on.
For Drizzle, we talked about the new configuration and plugin system I’ve been digging into lately. Monty Taylor has been doing a great job refactoring the plugin loading, but there are still some steps to be taken to get things where we want. One of the big goals with all this is to have the plugin and config system not specific to Drizzle at all so we can use this in other projects as well (one being Gearman). There are a bunch …
[Read more]