On my earlier post, I got a comment that PlanetMySQL outage was
related to a data center issue. However, something I am seeing
tells me a different story.
Baron (Xaprb) released MySQL Archiver. However, today's
PlanetMySQL outage seems to have caused an interesting effect: it
seems to have gotten confused about the relationship between
posts.
So here's what is happening:
The post was written by Baron. My name is linking to my blog
(http://mysqldatabaseadministration.blogspot.com/). The post's
title "MySQL Archiver 0.9.2 released" is linking to a post I made
today
(http://mysqldatabaseadministration.blogspot.com/2007/06/planetmysql-down.html).
Of course, the post should be linking to
(http://www.xaprb.com/blog/2007/06/09/mysql-archiver-092-released/)
and my …
I recently came across this blog post on using String.Compare instead of the tried and true method of converting one string to lowercase and comparing to a known lower case value. It's important to remember that strings in .NET (as in Java) are immutable so the act of lower casing a string will always make a new string. The memory subsystem for .NET is turned for handling lots of small objects but the fewer objects you create, the fewer that have to be checked and managed by the garbage collection system.
Still I wondered what the time difference would be between the two approaches. So I setup a very simple test where I compared the string "FooBar" to a string variable that contained the value "foobar" one million times. The first test used the approach of …
[Read more]This release fixes some minor bugs and adds a plugin mechanism. Now you can extend MySQL Archiver with your own code easily. You could use this to run setup and tear-down, hook code into the archiving process, and more. Possibilities include building summary tables in a data warehouse during archiving, handling dependencies such as foreign keys before archiving each row, or applying advanced logic to determine which rows to archive.
.. and more annoyingly, why I spend the night in Amsterdam, even though the Dutch PHP conference is not until next weekend. So there were apparently some pretty bad thunderstorms over France, Belgium and the Netherlands. As a result the plane that should take me to Amsterdam on the way to Sandjeford arrived about an hour late. Back in the day, when airlines still afforded themselves some ground time, this would not have been that big a deal, as I had no checked luggage and so ideally I could have switched planes in time as I had 1 hour stopover time in Amsterdam. Well these days it means that if the incoming plane comes one hour late, you will likely also be one hour late. Usually they can try to make up a few minutes by burning some more fuel. In this case the thunderstorms actually forced us to fly a non standard route, which took even longer.
Now when they broke the news in Zurich …
[Read more]
I am getting 2013: Lost connection to MySQL server during
query
I think they need the services of MySQL Professional Services :)
This release fixes some minor bugs and adds a plugin mechanism. Now you can extend MySQL Archiver with your own code easily. You could use this to run setup and tear-down, hook code into the archiving process, and more. Possibilities include building summary tables in a data warehouse during archiving, handling dependencies such as foreign keys before archiving each row, or applying advanced logic to determine which rows to archive.
I came across Oracle Coherence today. Seems like this is another approach to clustering than Oracle RAC. Here is the marketing quote from the Oracle website: Oracle Coherence is a JCache-compliant in memory distributed data grid solution for clustered applications and application servers. Oracle Coherence makes sharing and managing data in a cluster as simple as [...]
You'll probably get bored of all my stories of why we need open
software, but here's another great one:
We were working on shipping integration for the opentaps Open Source
ERP + CRM system with a Global Freight Carrier. We needed to
submit a ship request to them and print a shipping label. We set
up an account with them, got a username, a password, an XML
access key--everything is ready to go. We send the perfectly
formatted XML according to their documentation requirements and
kept getting an "Invalid/Missing Shipper Number" error.
We contact tech support on their website. We wait. We call our
sales rep. He says there's nothing he can do. We tell him we'll
ship with another equally global freight carrier. He gets his
tech supervisor, who says that the only support is by
email.
We wait. And wait.
And get really paranoid. We start …
What a surprisingly busy week.
Spent quite a lot of time tracking down a linking problem on
Itanium. It appears that GNU ld 2.14 has some serious
deficiencies. GNU ld 2.17 (the current stable release) does fix
the problem. Unfortunately, the last supported version of GNU ld
on RedHat AS 3 for Itaniam is version 2.14.90.0.4.20030529 -
which clearly cannot contain the fix which was written in
November of 2003. I suppose what to do is now a decision to be
made by someone else.
Also spent some time with Federated - Bulk insert support within
the storage engine and also how to make Federated play better
with transactions and network overhead. Have to put together a
new WorkLog entry if I cannot find a relevant one. I need to work
on writing better changeset comments. Ingo says, and I have to
admit that I agree a bit, that my comments assume that the reader
is familiar with the code and bug in question. I need to make
them a …
So, I mentioned in my MySQL Cluster post that I found out that cluster and joins don’t get a long too well. There are a couple of tips I have for using joins or replacing them with other techniques that I thought I would share.
Here are some things I keep in mind when using the NDB engine. These may apply to the other engines as well.
- Test using the NDB engine. Testing against another engine is not adequate.
- Avoid JOIN if you can, test often if you can’t
- Avoid subqueries always
- Select using primary keys when at all possible. Always select using a key.
- Be sure to include both your where and order by columns in your keys.
Try your join from several directions.
Sometimes, the way you join can affect the engine. This is more …
[Read more]