ptxArchiver 0.2

for those that are using ptxArchiver, this is a new version. zipkid added the timestamp when the archiving is done on files (to not override them)

dstat and my.cnf

What a surprise, this week-end I received I very nice email asking me some help on the plugins I wrote for dstat. I wrote them more then 2 years ago while listening to Linus Torvalds in Cambridge :) The request was to enable the read of the password and user from the my.cnf file instead of exporting them in environment variables. Here are the patch for the release 7.x (fedora) and 6.x (centos 5.3) The patch is only for one of the plugin, but it's easy to apply it to all of them.

ptxArchiver 0.1 released !

ptxArchiver 0.1 is released, this tool uses mk-archiver from maatkit to archive tables into another table, a file or simply purged BUT it follows the foreign keys defined in a config file and archive then the linked table. Feel free to test it and report improvements, comments, encouragement :) Special thanks to zipkid for the help reviewing some code.

cyrus on debian

I had to setup a nice mail solution for friends on their GNU/Linux server: a nice Debian 4.0 :-) As you should know, I'm not a Debian afficionados, never knew why but this is not my favorite distro and this is where the opensource world takes all his sense: freedom of choice :) "...tous les goûts sont dans la nature..." Ok then I started to setup ldap, not really a problem, the 4 db's were inserted via ldif; postfix with ldap support for domains and users was also not problem. Cyrus and Sasl was ok untill I discover that the autocreate patch[1] was not present in the package... oh my root ! As I didn't want to install cyrus from sources, and as I wasn't able to find a package already patched (but I found a huge amount of bugs requesting that feature and this for all cyrus version, it seems that postfix's debian maintainers don't like that patch... but I guess that all the other common distros have the patch included in their package...) Ok then I started to try to remember how to make a .deb again (loooooong time ago) step 1: apt-get install devscripts step 2: apt-get source cyrus-imapd-2.2 (I know it's old :( ) step 3: create a dpatch (cat ~lefred/cyrus-imapd-2.2.13-autocreate-0.9.4.diff | dpatch patch-template -p "85-autocreate.dpatch" > cyrus-imapd-2.2-2.2.13/debian/patches/85-autocreate.dpatch step 4: add 85-autocreate.dpatch between 80-kbsd-no-psstrings.dpatch and 99-update-autoconf.dpatch in cyrus-imapd-2.2-2.2.13/debian/patches/00list step 5: apply the patches : cd cyrus-imapd-2.2-2.2.13; dpatch apply-all -v step 6: build the packages : dpkg-buildpackage -uc ARRGH it fails : reverting patch 85-autocreate from ./ ... failed. step 7: rm debian/patched/85-autocreate.dpatch step 8: redo step 6 ARRGH it fails again, it seemd the dpatch creation is not ok I found another dpatch [2] and I replace it, so step 3 can be replaced by the copy of the new 85-autocreate.dpatch into cyrus-imapd-2.2-2.2.13/debian/patches/ Then back to step 4 and everything works ! in the mail.log using the standard debian package : Oct 15 20:12:53 ns2014675 postfix/pipe[6186]: 6506571620: to=, orig_to=, relay=cyrus, delay=0.08, delays=0.03/0/0/0.04, dsn=5.6.0, status=bounced (data format error. Command output: alain: Mailbox does not exist ) with the new fresh package : Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, INBOX was successfully created in partition default Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Learn creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Learn.Ham creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.Learn.Ham succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Learn.Spam creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.Learn.Spam succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Drafts creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.Drafts succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Sent creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.Sent succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.SpamMail creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.SpamMail succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subfolder INBOX.Trash creation succeeded. Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: autocreateinbox: User alain, subscription to INBOX.Trash succeeded Oct 15 23:09:28 ns2014675 cyrus/lmtpunix[7840]: User alain, Inbox subfolders, created 7, subscribed 6 [1] http://email.uoa.gr/download/cyrus/cyrus-imapd-2.2.13/ [2] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=25;filename=85-autocreate.dpatch;att=1;bug=435598

My new phone

I'm very happy to present you my new phone : I was hesitating between an iphone, an android or an openmoko... but the first two were not following the standards I was expecting, the last one was not stable enough. This one is compatible with all the software I use every day and follows real standards !! I can sync now !

Inuits becomes Pinuits

Inuits changed name to Pinuits. This name is more following the open standards and naming convention for companies giving consultancy around MySQL and other open source technologies like PhP, lamP, Python, Perl, druPal, ect... follow the P and read our press release at www.pinuits.be.

Fosdem 2009

Friday evening we had a pre-fosdem dinner with the Inuits (and Jen, thanks to her we reached the number of 10 to have cheaper dinner). It was very festive and also the first time for me to eat in a spanish restaurant where the plates travel on a rail :-) I'd like to thank the wonderful gps of my father, thanks to it we could walk at least 5km more than needed, maybe he hacked it to help the rehabilitation of my knee :-P The beer event was crowded as expected, the beers good as expected, but I couldn't stay too long and I already left at 22.30. I met Dim0 and Zipkid. On Saturday I was unfortunately not present at Fosdem :( On Sunday, I met first Arrfab, ready for his introduction to CentOS (but I didn't plan to follow it again this year); the Drupal room was so full and me so late that I decide to pass my way and I met Sdog and Flyer in front of the MySQL Dev Room. After a short chat I went to Janson with Denraf to follow the Cobbler presentation. I didn't know that Jasper was working for my first employer in OpenSource: Stone-IT but in the Netherlands. Nice, it seems that cobbler works now also with Debian and Ubuntu, wasn't the case when I checked some time ago. With the Puppet integration I really need to have an extra look to it. I attended then Building a Community Website using Drupal but the talk didn't reach my expectation. The room was too crowded but this is generaly the case on every rooms. Denraf did also a free demo of android : the very loud ringtone :-) After the pit stop for a sandwich, we join Toi and Flyer to Jason for the talk on upstart... seems very nice but I've to admit that I wasn't paying enough attention (certainly flyer's fault, we had a lot of fun with the syntax of upstart due to some fonts problem on the slides: too many blank spaces). Ok, then we went to see if the life is really to short fo SeLinux in the Fedoras/Centos Room where I saw briefly Sintax.... Flyer seems so impressed by SELinux.. will his life be long enough...? FOSDEM is finished, see you next year for the 10th anniversary of FOSDEM.

EeePC synchronization with unison

Sometimes I use my EeePC during a meeting, or when I don't want to use my bigger Dell laptop. But of course I'd like to be able to synchronize one folder on both machines to transfer documents that I should update on both laptops. unison is my friend for this task, but as I'd like to test some avahi and libnotify code to automate and integrate this solution on my gnome desktop, I wrote the following python script : EeepcSync Instructions on how to use it are present in the script. Somes screen captures : of course the code should be reviewed as I'm very newbie in python ;-)

Is the review of SQL statements the only valid way to optimize them ?

Asking the question is already answering to it ;) I had a very long query that was even locking the table during the select on innodb (select into, that's due to the binlog). To avoid that query I decided to replace the select into statement by a select into outfile and add a second statement to perform the load data infile. The query was running for 18 hours !! It was impossible to change it, but the amout of data was huge, more than 100M rows (>1.2GB of returned data). I was able to reduce the running time by 9 : now the query runs in 1h50 ! How ? by adding SQL_BIG_RESULT to my select and by modifying two MySQL variables : set global join_buffer_size=67108864; set global query_cache_size=67108864;

MySQL Conference Paris 2008

Yesterday with Zipkid[1], we went to the MySQL(/Sun) Conference in Paris[2]. We took the TGV in Lille to Paris, then the metro (with too many stairs...) and a nice walk before we found the right place. We received a nice bag, good ! We arrived just some minutes late during the introduction by Bertrand Matthelié (MySQL) and Bruno Hourdel (Sun). That was a nice presentation and Bruno clarify some points on the bought of MySQL by Sun. Robin Schumacher made a nice presentation about the future features of MySQL, very interesting and MySQL Enterprise becomes more and more interesting with the monitoring and the new MysQL Query Analyzer[3]. We were a bit surprised that those presentations where on M$ office and not using OO.org or StarOffice ;-) We followed then the presentation of Serge Frezefond about Web2.0 and memcached, first part was quite common, the second one was much more attractive for me. The topic of the next presentation (HA and loadbalancing with MySQL Proxy) was maybe the most important reason of my presence in Paris... but I was disappointed by the presentation of Omar Zemrag, his inexperience as speaker was too obvious... pity. The lunch was very good, isn't it Zipkid ? Before every presentation we could "enjoy" the famous song of The Beatles : "here comes the sun" We got a thunder sponsors presentation, one minute per sponsors, that was just enough. The LEMUG[4] is doing now what we were already doing in Belgium with technical meeting between MySQL users, but they also provide stuffed mysql dolfins, but we didn't see or get one :-( We attended the presentation of Miriam Tuerk about datawarehouse with MySQL and Infobright[5] where we heard about good, bad and ugly data packs :-) This is something I should check soon. After this we saw a customer case : Virgin Mobile (Xavier Nicolle). It was not easy to understand him, his voice wasn't good with the accoustic system it seems and he was "eating" his words. The MySQL backup strategy presentation from Max Mether was too slow (it would be certainly nicer in English) and the content was an overview of the basis (mysqldump, copy files), nothing new in fact, I expected some overview of zamanda. Scale Up, Scale Out, Virtualization by Serge Frezefond. He gave a nice summary of the benefits of the different virtualization method concerning MySQL. For high performance and critial applications, full virt or para virt are of course not advised. He advised for MySQL the OS virtualization like zones on Solaris, OpenVZ or VSever on Linux. We also saw nice slides summarizing the load on different levels : network, cpu, ram/caching, i/o, space... It seems that when we reach some limitations in an intensive write application, scale out is the solution, but that scale out can happen on the same physical machine using multiple instances especially on machines with a large number of cores... (I don't have yet enough return of experience on this topic). This is called "instance scale-out". Serge illustrated this with a benchmark's results (DBT2, mysqlslap). In conclusion, currently is stupid to run only one instance of MySQL on a machine having more than 8 cores. This is then a green approach :-) But having more instances will also consume more diskspace if they need the same data... I was globally happy with this conference, but I'd prefer to have some technical high level tracks. Would be nice if MySQL organize some event like SambaXP. PS: for my Sun lover colleagues, I've learn that Sun has something called MySQL coolstack: it's binary of MySQL optimized for Sun platforms. [1] http://www.zipkid.com/ [2] http://www.mysql.fr/news-and-events/european-conferences/2008/ [3] http://www.mysql.com/products/enterprise/query.html [4] http://www.lemug.fr/ [5] http://www.infobright.org/Open-Source/Home

As MySQL Community Manager, I am an employee of Oracle and the views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

You can find articles I wrote on Oracle’s blog.