We have been busy, at Continuent. In addition to our usual work with high performance replication, we have addressed usability issues, since we know that a hard-to-use problem, no matter how powerful, has low adoption. Thus, is with some personal satisfaction that I can announce the release of Tungsten Replicator 2.0.3, which comes with several huge improvements in matter of user friendliness. The new installation procedure is so user friendly, in fact, that I was able to build a sophisticated tungsten-sandbox with a 150-line shell script. (The corresponding features … |
So, we can have a look at this improvement, which I am sure will
make DBAs quite happy. The new feature is an instantaneous exchange between a partition and a
table with the same structure. Using this feature, you can
transfer the contents of one partition to one table, and vice
versa. Since the transition is done only in the attribution of
the data, there is no copy involved. The data …
|
Half a day into my vacation, I managed to finish an article on a topic that has been intriguing me for a while. Since several colleagues were baffled by the semantics of the new enhancements of MySQL 5.5 partitions, after talking at length with the creator and the author of the manual pages, I produced this article: A deep look at MySQL 5.5 partitioning enhancements. Happy holidays! |
UPDATE This matter was more tricky than it appeared at
first sight. As Bug#49861 shows, several MySQL engineers were …
Amy Hoy has written a blog post about why forums are crap. And she is right. Forum software
does not always do a good job of helping people communicate. I
have worked with Amy. She did a great analysis of dealnews.com that led
to our new design. So, she is not to be ignored.
However, as a software developer (Phorum), I see a lot
of problems and no answers. And it is not all on the
software. Web site owners use forums to solve problems that
they really, really suck at. Ideally, every web site would
be very unique for their audience. They would use a custom
solution that fits a number of patterns that best solves their
problem. However, most web site owners don't want to take
the time to do such things. They want a one stop, …
Jonas just wrote a patch to this bug
on OPTIMIZE TABLE, and the issue that was also discussed in this
blog post. Jonas also fixed this bug
when he was at it.
Before, OPTIMIZE TABLE
hardly freed up any pages and
to defragment you had to do a rolling restart of the data
nodes.
Now, there is only a 2% discrepancy between OPTIMIZE
TABLE
and doing a rolling restart. This is great
stuff.
This will fix will make it into 6.3.26 and 7.0.7.
See below for details:
Creating two tables, t5 and t6:
CREATE TABLE `t5` (
`id` varchar(32) CHARACTER SET utf8 NOT NULL,
`name` varchar(32) …
There are some bug reports on the auto-discovery protocol in
MySQL Cluster.
The idea of the auto-discovery protocol is to fetch the .frm
files for the NDB tables stored in the data dictionary of the
data nodes, and put them in the data directory of the mysql
server.
However, sometimes (not always, which makes it more difficult to
reproduce and hence fix), the auto-discovery seems to make
strange things (from this bug
report):
After shuting down and restoring my cluster I get the following error.[Read more]
090211 9:59:26 [Note] NDB: mismatch in frm for panel.gatewayquestions, discovering...
090211 9:59:26 [Note] NDB Binlog: DISCOVER TABLE Event: REPL$panel/gatewayquestions
090211 9:59:26 [Note] NDB Binlog: logging ./panel/gatewayquestions (UPDATED,USE_WRITE)
This is due to the files already being in the mysql data directory. After …
A long standing bugAmong the many outstanding bugs for MySQL,
there is one that has sparked a fierce discussion, not only in
the bug report itself, but also in blogs, forums, mailing
lists.
Bug #19027: MySQL 5.0 starts even with Fatal InnoDB
errors was neglected for long time, until finally it got
fixed, and it is available in MySQL 5.1.36.
First off, what is it about?
In short, if an engine doesn't initialize correctly, the MySQL
server starts anyway, without the offending engine. Depending on
how you use the failing engine, this could be either a minor
annoyance or a complete disaster.
Annoyance: ARCHIVE fails to initialize, and you create
tables with the default engine (usually MyISAM), and after a
while you realize that the disk is filling up faster than you
expected. You will find out eventually.
Disaster: ARCHIVE fails to …
|
Laziness strikes again. MySQL Sandbox was created with the intent of avoiding repetitive work when creating and using several servers. Turns out that even the current framework, which many say that is really time saving and enhances productivity, was not enough. So my desire for laziness, which is, as everybody should know a chief virtue for a programmer has made me code a shortcut script, which can joggle sandboxes as never before. |
Enter the sb script (available in version 3.0.03). Now I
can shorten my typing experience with sandboxes quite a
lot:
$ sb 5135
# same as calling
# …
[Read more]
If you are going to load a lot of records into Cluster, don't
forget to set max_rows!
My colleague, Yves at BigDBAhead, has also blogged
about this, but I also ran into the same problem recently.
I did try to populate 100M records on a 4 node cluster, and the
data nodes went down with the following error message in the
error logs:
"2304 Array index out of range"
So the error message is crap - and my opinion is that there
should be a proper error message propagated up to the mysql
server. There is a bug
report on this.
Simplified, what the error message means is that you have run out
of "index slots" in the Hash Table storing the hashes of the
Primary Keys. This is because each table is divided into a number
of partitions, and each partition …
|
I talked several times about partitioning usability. In my many tests of
partitioning I found myself in need of generating list of
partitions for a given range. I made the Partition Helper to scratch this particular itch, i.e. making partitions reasonably quickly and without thinking too much. |
The Partition Helper is a Perl script that converts some …
[Read more]