この記事は
- Perl Advent Calendar 2018 の6つ目の窓です。
- 昨日は @ytnobody さんの 昔書いたGithub止まりのモジュールをほじくり返す – Test::Proc 篇 でした。
- MySQL Casual Advent Calendar 2018 の6つ目の窓でもあります。
- 昨日は @taka_yuki_04 さんの 非公式なmysql-upgrade-checkerをMySQL5.5で試してみる でした。
みなさんは innotop をご存知でしょうか?
そう、
SHOW PROCESSLIST
や SHOW ENGINE INNODB STATUS
の結果を top
ライクに表示してくれる、みんなだいすき Perlで書かれた スクリプトです。
わたしはこのツールが随分気に入っていて、今までも何度もブログを書いていました。
息してないなーエントリの時もTwitterでちょくちょく「使ってたのに」的な反応があったので、案外(?)使っている人も多いのかも知れません。
息してないなーエントリの時もTwitterでちょくちょく「使ってたのに」的な反応があったので、案外(?)使っている人も多いのかも知れません。
最初は2012年だから本当にMySQLを真面目にやり始めた頃、MySQL 5.7対応でプルリクを出したりしたのは2016年だったんですね。今年はMySQL 8.0対応の Pull-Request を書きました。これでinnotopはMySQL 8.0でも使えます。安心ですね。
- innotopのIssueで感じる時の流れ | GMO MEDIA CREATOR BLOG
- Innotop for MySQL 8.0 – lefred’s blog: tribulations of a MySQL Evangelist
さて、ここ数年のinnotopへのコントリビュートを経て思ったことが、「マイエスキューエルにはPerl Mongerが必要かもしれない」ということです。
まずこの スクリプト は「如何にも昔から動き今も動くPerlスクリプト」という感じで、1ファイルで1万2千行以上、ファイルサイズも447kBもあります。
たとえばセマフォの情報を示すセクションをパースしているコードはこんな感じになっていて、
https://github.com/innotop/innotop/blob/37e96a83bd4c37715f3c2bfab94d665106b6912b/innotop#L1284-L1311
Perl Mongerでない限り心が折れてしまうんではないでしょうか。
ちなみにPerl Mongerでも心は折れると思います。俺は何度か折れた。
ちなみにPerl Mongerでも心は折れると思います。俺は何度か折れた。
加えて、このバッファプールのセクションをパースしているあたりなんかは、Perlが問題なく読めたとしても「そもそも
SHOW ENGINE INNODB STATUS
が読めないとこれで合ってるのかどうか判断できない」というなかなかアレな状態です(新しいバージョンが出た時に自分自身でパースできないとテストケースの作りようがなくなるのでな…)
https://github.com/innotop/innotop/blob/37e96a83bd4c37715f3c2bfab94d665106b6912b/innotop#L1313-L1356
という訳で現在、innotopにパッチを当てられるのはおおむね (“Perl Mongerである” || “Perl Mongerではないが心が強い”) && “InnoDBと友達” な人に限られるのではないでしょうか…と言いつつ、OSSにパッチを投稿するには限りなく
自分が使っている = 不具合は自分に不都合
というモチベーションが必要です。
Perl MongerではないけどPerlが好きで、InnoDBと友達ではないけれど言いたいことはわかって、innotopをガシガシ本番で使っている俺がこのソフトウェアにパッチを当てるようになったのは自然なことなのかも知れません。
自分で使っているのを差っ引いても、innotopはおおむね便利なのでみなさまも使っていただけると(俺ではなくて中の人の)励みになると思います。
ちなみにここまでの文書、
Perl製のMySQLのツールはそれなりにあるので、PerlでMySQLな人はそのツールが消えてなくなる前に パッチなどご協力いただければ幸いです。
自分が使っている = 不具合は自分に不都合
というモチベーションが必要です。
Perl MongerではないけどPerlが好きで、InnoDBと友達ではないけれど言いたいことはわかって、innotopをガシガシ本番で使っている俺がこのソフトウェアにパッチを当てるようになったのは自然なことなのかも知れません。
自分で使っているのを差っ引いても、innotopはおおむね便利なのでみなさまも使っていただけると(俺ではなくて中の人の)励みになると思います。
ちなみにここまでの文書、
s/innotop/pt-query-digest/g
とか s/innotop/MHA for MySQL/g
とかにしても似たようなことが言えます。Perl製のMySQLのツールはそれなりにあるので、PerlでMySQLな人は
Are you using Innotop for @MySQL ?— lefred (@lefred) 2018年11月12日
( ´-`).oO(レプリケーションと友達なPerl Mongerが捕まらなかったのか、使っているユーザーがいなかったのか、 MMM for MySQL …いやううんなんでもない
明日の
です。
明日もおたのしみに。
明日もおたのしみに。
0 件のコメント :
コメントを投稿