The effect of temporary tables on MySQL's replication

The other day I needed to set up a new set of MySQL instances at work what would replicate from an existing node. I was setting these up because the master node is running out of disk space and is very slow. Usually, when you need to restore a database you do it in three parts: Install the binaries Load the initial data from the most recent MySQL backup. Set it replicating from one of the nodes by specifying the binary log file and position from which you want it to replicate (which usually corresponds to the day you took the backup).

XFS and barriers

Lately at work, we’ve been trying to figure out what the deal with barriers are, either for XFS or EXT3, the two filesystems we like most. If you don’t know what barriers are, go and read a bit on the XFS FAQ. Short story, XFS comes with barriers enabled by default, EXT3 does not. Barriers make your system a lot more secure to data corruption, but it degrades performance a lot.

Monitoring data with Collectd

I’ve been using collectd for quite a while just to monitor the performance of my workstation. I’ve tried other solutions (cacti, munin, etc) but I didn’t like how it all worked or the graphs it created, the amount of work required to have it working, or any other reason, finding collectd to be overall a good solution for my monitoring needs (which are basically graphing and getting some alerts). I like it because it generates nice and good graphs (among other things): But what I like the most about it is the architecture it’s got for sending data and its low memory footprint.

Little surprises in HTTP Headers

Last week I move a blog I’ve got in Spanish to Basically I really like and I believe it’s really worth it in terms of freeing my time from administering a wordpress installation and keeping up with the security fixes etc. And today, having a little bit of time I was tweaking my old website to redirect to the new site using an HTTP permanent redirect header. This is what I found in the HTTP headers: [golan@mars ~] % HEAD 200 OK Cache-Control: max-age=260, must-revalidate Connection: close Date: Thu, 15 Oct 2009 21:35:09 GMT Server: nginx Vary: Cookie Content-Type: text/html; charset=UTF-8 Last-Modified: Thu, 15 Oct 2009 21:34:29 +0000 Client-Date: Thu, 15 Oct 2009 21:35:09 GMT Client-Peer: Client-Response-Num: 1 Link: ; rel=shortlink X-Hacker: If you're reading this, you should visit and apply to join the fun, mention this header.

Tricks to diagnose processes blocked on strong I/O in linux

There’s one aspect of the Linux kernel and the GNU operating system and related tools in which it might be lacking behind, specially with kernel 2.4 series. I’m talking about I/O accounting or how to know what’s going on with the hard disk or other devices which are used to write and read data. The thing is that Linux provides you with a few tools with which you can tell what’s going on with the box and its set of disks.

Installing From Source, The Easy Way

Installing software in any unix-like operating system these days has become very easy. Package managers such as dpkg, the one used by Debian or Ubuntu, take most of the hassle by dealing with all the dependencies and intricacies that modern software has nowadays. It’s just a matter of getting the package that some hard-working and/or generous developer has made and install it in our system. It’s straightforward compared with how things were a mere few years ago.

Modifying a live linux kernel

Before reading this, I just need to say something: I’ve no idea of linux, I’ve no idea of programming, I’ve no idea of computers… Everything you read here might have been invented, so, please, do not reproduce what I write here. If you do, bear in mind that you do it under your own responsibility. In fact, what is a computer anyway? The other day we were having issues with a box that was used as a NFS box among other things.


Some time ago I discovered Multitail, a tool for displaying in a tail-like fashion any kind of information. I works by splitting the console window in many parts and displaying the info you want on each of those screens, whether it is tailing a file or the output of a command via a ssh session. It also has coloring support (which you can extend using regular expressions) to tailor your needs.