May 22, 2013

CentOS 5.8 users: your UTF-8 data is in peril with Perl MySQL

CentOS 5.8 and earlier use Perl module DBD::mysql v3.0007 which has a bug that causes Perl not to flag UTF-8 data as being UTF-8.  Presuming that the MySQL table/column is using UTF-8, and the Perl MySQL connection is also using UTF-8, then a correct system returns: PV = 0x9573840 "\343\203\213 \303\250"\0 [UTF8 "\x{30cb} \x{e8}"] That’s a Devel::Peek inside a Perl scalar variable which [...]

Impact of memory allocators on MySQL performance

MySQL server intensively uses dynamic memory allocation so a good choice of memory allocator is quite important for the proper utilization of CPU/RAM resources. Efficient memory allocator should help to improve scalability, increase throughput and keep memory footprint under the control. In this post I’m going to check impact of several memory allocators on the [...]

Faster Point In Time Recovery with LVM2 Snaphots and Binary Logs

LVM snapshots is one powerful way of taking a consistent backup of your MySQL databases – but did you know that you can now restore directly from a snapshot (and binary logs for point in time recovery) in case of that ‘Oops’ moment? Let me show you quickly how. This howto assumes that you already [...]

Connecting orphaned .ibd files

There are two ways InnoDB can organize tablespaces. First is when all data, indexes and system buffers are stored in a single tablespace. This is typicaly one or several ibdata files. A well known innodb_file_per_table option brings the second one. Tables and system areas are split into different files. Usually system tablespace is located in [...]

Linux schedulers in tpcc like benchmark

I mentioned earlier that IO scheduler CFQ coming by default in RedHat / CentOS 5.x may be not so good for MySQL. And yesterday one customer reported that just changing cfq to noop solved their InnoDB IO problems. I ran tpcc scripts against XtraDB on our Dell PowerEdge R900 server (16 cores, 8 disks in [...]

More patches

After some pause we are going to announce bunch of patches we made and ported for last period. Ported patches (ported from Google V2 patch): – innodb_fsync_source.patch – Show information about callers of fsync, more info – innodb_io_tune.patch – Port of two patches InnodbIOTune and InnodbAsync, more info – innodb_extra_status.patch – Show more information about [...]

Mirrored Binlogs patch

Google patches V1 contain interesting patch to mirror binary log on slave. Although Google is preparing GlobalTransactionId patch, which going to be replacement for MirroredBinlogs, we still think mirroring binary logs is very useful for: Backup of binary logs in real time High availability, to switch master load to slave with mirrored binary logs By [...]

MySQL – to use or not to use

Reading this slashdot article today and two CIO magazine articles linked from it. Such discussions started at right place at right time always attract a lot of flamers and can be fun to read. What hit me this time is quality of the articles in CIO magazine. If this is what managers suppose to use [...]

MySQL Releases first real Community Release

Few days ago MySQL released MySQL 5.0.37 which I would call first real Community Version, because unlike previous versions which were released from the same source tree as Enterprise MySQL this one has some community features added, which is great. Also over last half a year MySQL seems to have organized resources for Community Engineering [...]

Binaries of MySQL 5.0.33 Community release for AMD64 / EM64T

Update 3 June 2008: We have removed the builds below, since they are quite obsolete and no one has posted comments about them since more than a year ago. Great news are MySQL finally released new Community release – MySQL 5.0.33, which however as promised comes without Binaries. This version also does not have any [...]