Skip to content

Giving a lightning talk at FOSDEM: schedule now online

FOSDEM 2007

FOSDEM, the Free and Open Source Software Developers' European Meeting will again take place in Brussels, Belgium on February, 24th & 25th. I went there last year and really had a great time. This year, I submitted a proposal for a lightning talk, which has been accepted! I've just been informed that the lightning talk schedule is now published. My talk "What's new at MySQL AB" will be on Saturday, at 17:00. I look forward to being there!

MySQL++ v2.2.0 has been released

Congratulations to Warren Young and the other developers that maintain the MySQL++ C++ wrapper around the MySQL Client libraries: version 2.2.0 has just been announced and boasts a wide range of changes. Here's a description of MySQL++ from the project web site:
MySQL++ is a C++ wrapper for MySQL's C API. It is built around STL principles, to make dealing with the database as easy as dealing with an STL container. MySQL++ relieves the programmer of dealing with cumbersome C data structures, generation of repetitive SQL statements, and manual creation of C++ data structures to mirror the database schema

mylvmbackup 0.4 has been released

I am happy to announce version 0.4 of mylvmbackup, a tool to perform consistent backups of a MySQL server's tables using Linux LVM snapshots.

For this release I'd like to especially thank Robin H. Johnson from the Gentoo project, who contributed another batch of useful changes and informed me that mylvmbackup is now in productive use to perform backups of the MySQL databases that power the project's Bugzilla bug tracking system. I am always glad to read about such use cases - how do you utilize mylvmbackup in your environment?

  • The option handling has been improved. mylvmbackup now starts by using the builtin defaults, followed by the default configuration file (/etc/mylvmbackup.conf, followed by an alternative configuration file (specified via CLI arguments), followed by the remainer of the CLI arguments.
  • Changed the capture of the position file and tarball creation to not use absolute path names, and instead use them relative to $mountdir. This means that the content of the backup tar archives has changed with regards to the directory structure, please keep this in mind when restoring from backups!
  • Now utilizes a bindmount to get the position directory near the $mountdir for the tarball creation.
  • Directory names are sanitized for excessive whitespace and trailing slashes
  • Code cleanup: use my $variable instead of use vars
In addition to Robin's improvements, the following changes were made by me:
  • Fixed DSN string handling (thanks to Peter Zaitsev for spotting this)
  • Fixed logging to the console (log levels were not printed)
  • Removed a few currently unused configuration options from the config file

openSUSE Build Service news: added google-perftools and build on openSUSE 10.2

After a longer pause I finally had a moment to work on my packages in the openSUSE Build Service. I now added RPMs for the Google Performance Tools and enabled building on openSUSE 10.2. From the perftools project page:

Perf Tools is a collection of a high-performance multi-threaded malloc() implementation, plus some pretty nifty performance analysis tools.

I hope you will find them useful. It would be interesting to see, if a KDE desktop linked against tcmalloc() is significantly faster than using the default glibc malloc()...

mylvmbackup 0.3 now released

I am happy to announce version 0.3 of mylvmbackup, a tool that performs consistent backups of a MySQL server's tables using Linux LVM snapshots.

Special thanks go to Fred Blaise, who contributed the majority of the new features that have been added to this new release:

  • It is now possible to use an external configuration file /etc/mylvmbackup.conf to store the options. This is probably more convenient than having to pass a slew of options on the command line or having to hack the script itself to change the default values. This new feature requires the Config::IniFiles Perl module to be installed, a sample configuration file is included in the package.
  • The logging to the console has been visually enhanced by including a time stamp and the message category (e.g. Info, Warning or Error). In addition to that, it is now possible to log messages to a local or remote syslog server. This feature requires the Sys::Syslog Perl module.
  • The man page has now been converted into an asciidoc file, which makes it easier to generate other document formats as well, e.g. a HTML version.
  • Several small bugs have been fixed, too: see the ChangeLog for details.
If you are looking for a convenient backup tool to create fast and consistent MySQL backups, please give mylvmbackup a try! You feedback is appreciated. A tarball and RPM are now available for download from the project's home page. Thanks!

Hot-swapping the CD-ROM drive in my Thinkpad T42 UltraBay with SUSE Linux 10.1

While browsing the fabolous ThinkWiki pages I stumbled over this little gem: the lt_hotswap kernel module finally allows me to eject the CD-ROM drive in my Thinkpad T42's UltraBay without having to shut down Linux first. This module makes sure that the device is properly unregistered from the kernel's device list. Now I can replace it with e.g. a second battery on the fly and don't have to shutdown the OS completely! The installation on my SUSE Linux 10.1 system was quite easy: after downloading the source tarball from the SourceForge.net download page I performed the following commands:
tar zxvf lt_hotswap-0.3.6.tar.gz
cd lt_hotswap-0.3.6
make
sudo make install
sudo rcacpid restart
modprobe lt_hotswap

You need to have the kernel-source package installed, as well as the gcc compiler, of course. Now when I eject the little lever that allows me to pull out the CD-ROM drive from the UltraBay, the following message appears in /var/log/messages:

lt_hotswap: Requesting IDE eject!
lt_hotswap: Attempting to eject

Now the CD-ROM drive can be safely pulled from the UltraBay and e.g. exchanged with an additional battery. Inserting the battery yields the following kernel message:

kernel: ACPI: Battery Slot [BAT1] (battery present)

The battery info also appears in /proc/acpi/battery and is fully operational. Unfortunately battery monitoring tools like KPowersave or gkrellm don't display the second battery, but at least the kernel is happily using it. I can remove the battery again, but this event does not seem to get registered properly - the second battery remains visible in /proc/acpi/battery, but shows zero capacity and the "present" state does not change. But at least replacing the CD-ROM drive with the battery now workes fine, which was my major concern. And it is still possible to re-insert the CD-ROM drive again:

kernel: ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:pio, hdd:pio
kernel: Probing IDE interface ide1...
kernel: hdc: HL-DT-STCD-RW/DVD DRIVE GCC-4242N, ATAPI CD/DVD-ROM drive
kernel: ide1 at 0x170-0x177,0x376 on irq 15
kernel: hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)

If you want to enable the lt_hotswap module at bootup, you need to add its name to the MODULES_LOADED_ON_BOOT variable in the /etc/sysconfig/kernel configuration file.

If your Laptop uses an external docking station to host a CD-ROM drive, there are some good news for you: according to Andreas Jaeger's blog, the upcoming openSUSE 10.2 will actually provide a generic Dockutils framework that will support docking/undocking functionality for different laptops and vendors. It will be interesting to find out if this covers UltraBay devices as well.

mylvmbackup version 0.2 has been released

I am happy to announce that version 0.2 of the mylvmbackup tool is now available!

mylvmbackup is a Perl script for quickly performing backups of a MySQL server's databases using the Linux Logical Volume Manager (LVM). It creates a consistent LVM snapshot of the server's data directory which is then backed up without further blocking the server's operation.

After version 0.1 was published in May this year, I did not really get much feedback about it. I had some ideas for improvements (see the TODO file included in the package), but never got around to actually start working on them.

Thanks to Robin H. Johnson from the Gentoo project for contributing a number of new options and features as well as some code cleanups. His changes motivated me to make a few more modifications and improvements by myself, which have now been rolled into a new release.

The new options provide some more flexibility in the way the script handles the logical volumes and how the backup files are being created. I also overhauled the building and packaging and added a Makefile to automate these procedures. For details, please refer to the ChangeLog and check the manual page and the README for additional info.

A tarball and RPM of version 0.2 can now be downloaded from the project page.

The SVN repository can now be browsed using WebSVN as well.

Please give it a try! Your feedback is very welcome.

MySQL FLOSS license exception update

Two days ago we added the University of Illinois/NCSA Open Source License to the list of licenses in the MySQL FLOSS license exception. In my opinion exception is actually a badly chosen word - extension would probably be more sufficient here as it actually extends the scope of the MySQL client libraries license. From the introductionary text on top of the document:

We want specified Free/Libre and Open Source Software ("FLOSS") applications to be able to use specified GPL-licensed MySQL client libraries (the "Program") despite the fact that not all FLOSS licenses are compatible with version 2 of the GNU General Public License (the "GPL").

In other words, the license exception allows the distribution of a derived work including the MySQL Client Libraries under a number of OSI-approved Open Source Licenses. This allows a broader range of (non-GPL) Open Source applications to link against the MySQL Client libraries. In essence, it makes the GPL less restrictive.

OSCON Interviews: Solid

It's already a month old, but I just stumbled over this ITtoolbox Interview with Jonathan Cheyer (Open Source Community Manager) and Murat Demiroglu (Senior Product Manager) from Solid Information Technology, in which Dru Lavigne talks with them about Solid (the company) and the solidDB for MySQL storage engine, which is currently in beta testing. I still remember Solid from my times at SUSE Linux, where it used to be a part of the Linux distribution along with MySQL, PostgreSQL, Adabas D and several other DBs...

Public MySQL SVN repositories now browseable with FishEye

While the MySQL Server source trees are maintained using the BitKeeper revision control system, several other MySQL projects (Connectors, GUI-Tools and the Manual) use Subversion instead.

To make it easier for external developers in getting familiar with the code base of the respective project, we now installed the FishEye SVN repository browser, which provides a very nice interface to the hosted repositories and boasts an impressive number of additional features like searching, diffing and RSS feeds.

This will hopefully encourage more developers to participate and contribute to these projects. FishEye will also make it more convenient for our own developers to work with their SVN repositories and should soon become a valuable tool for us.

Sessions about MySQL at the EuroOSCON 2006 conference

On September 18th-21st, the second EuroOSCON will take place in Brussels, Belgium. I probably won't make it to this year's conference, but I really enjoyed the event in Amsterdam last year.

The session grid contains a number of talks related to MySQL:

In addition to these sessions which are directly related to MySQL, here is a selection of talks that most likely cover it as well:
All in all, the conference program looks very promising. I wish I could be there...

SAGE@GUUG Hamburg Meeting

Yesterday I attended a local SAGE@GUUG Meeting. The topic was "zsh - the ubershell" and I tend to agree - I have switched to using zsh instead of bash more than four years ago, after Mads introduced me to it. However, I quickly discovered that there is much more to learn about it - thanks a lot to Julius for the nice demonstration.

After the presentation we walked over to a local turkish restaurant to have some dinner and chitchat. There I met with Lars, who moved to Hamburg recently. We had a good time and discussed a wide variety of subjects. Thanks to Dirk for arranging this meeting! I look forward to the next one, which will take place on September 14th and will cover the "Service Management Facility" from Sun Solaris 10.

More packages added to the openSUSE Build Service

Encouraged by this flattering comment, I went through my full collection of SUSE RPMs, picked the ones worth updating to the latest versions and submitted them to my package repository at the openSUSE build service now:
  • bchunk 1.2.0 - A CD image format converter from .bin/.cue to .iso/.cdr/.wav.
  • kvdr 0.64 - A KDE Front-End for VDR (Video Disk Recorder)
  • samefile 2.12 - Find identical files on your file system
  • rss-glx 0.8.1 - Really Slick Screensavers
  • rzip 2.1 - A large-file compression program

I hope none of these are already maintained somewhere else, this is something I still haven't figured out - how can I search the existing projects for certain packages?

The Build Service totally rocks, especially since it can be conveniently used from the command line as well. I submitted my first two packages via the web frontend, but have now switched to using the osc command line tool exclusively. Kudos to the openSUSE Build Service Team, building packages on other platforms has never been that easy!

10.1 RPMs now on the openSUSE Build Service

Thanks to Duncan Mac-Vicar for the friendly reminder: I finally bit the bullet and started using the openSUSE Build Service for building and hosting the RPMs that I build for SUSE Linux by myself. I've now moved the KeyJnote and mercurial RPMs for SUSE Linux 10.1 to my own repository there. Future RPMs will also be provided from there exclusively. Kudos to the openSUSE team for providing this service!
tweetbackcheck