Mroonga 5.06リリース!
今日は野菜の日ですね。 Mroonga 5.06 をリリースしました!
- インストール方法: インストール
- アップグレード方法: アップグレードガイド
今月は変更点が少なめですが、次のいずれかの条件にマッチする人はアップグレードを推奨します。
- Mroonga 5.04または5.05を使っている
- マルチカラムインデックスを使っている
それぞれ理由を説明します。
Mroonga 5.04または5.05を使っている
Mroonga 5.04、5.05にはシャットダウン時にクラッシュするバグがありました。このバグはこのバージョンで修正しました。
シャットダウン時に常にクラッシュするわけではなく、次の条件を満たした時にクラッシュします。
- Mroongaのテーブルを1つ以上開いている
そのため、次のようにFLUSH TABLES
を実行してすべてのテーブルを閉じてからシャットダウンをするとクラッシュしません。
FLUSH TABLES;
なお、Mroongaアンインストール時もMySQLシャットダウン時と同様にクラッシュします。そのため、アップグレード時は次の手順を使ってください。
FLUSH TABLES;
を実行- Mroongaをアップグレード
マルチカラムインデックスを使っている
これはMroongaの問題ではなくGroongaの問題なのですが、次のいずれかのときにインデックスが壊れる可能性がありました。
- すでにデータが入ったテーブルに対して
ALTER TABLE ADD INDEX
でマルチカラムインデックスを追加したとき(ALTER TABLE ADD FULLTEXT INDEX
でも同様) - マルチカラムインデックスを
ALTER TABLE ENABLE KEYS
したとき - マルチカラムインデックスがあるテーブルをmysqldump→restoreしたとき
インデックスが壊れると、誤ヒット(ヒットすべきではないレコードがヒットする)と検索漏れ(ヒットするべきレコードがヒットしない)が発生する可能性があります。
この問題は常に発生するわけではなく、レコード数・データ量が多いほど発生する可能性が高くなります。そのため、マルチカラムインデックスを使っている方にはアップグレードを推奨します。
繰り返しますが、これはMroongaではなくGroongaの問題です。そのため、厳密にはGroongaをアップグレードするだけでよいです。しかし、多くのMroongaユーザーはGroongaを意識せずに使っているはずなので、ここではパッケージを使ってMroongaをインストールしている人向けに、Mroongaのアップグレード方法を紹介します。MroongaをアップグレードするとGroongaも一緒にアップグレードされます。もちろん、ソースからビルドしている方や細かいことがわかっている方は、Groongaだけアップグレードしても問題ありません。
この問題用のMroongaのアップグレード方法は次の通りです。MySQLを再起動する必要があることに注意してください。
- Mroongaをアップグレードする
- MySQLを再起動する(必須!)
MroongaがMySQLにロードされると、Groongaも一緒にロードされます。Mroongaはアップグレード毎に動的に再ロードできるのですが、Groongaは一度ロードされたらMySQLが終了するまでアンロードされません。そのため、MySQLを再起動する必要があります。
おわりに
5.05からの詳細な変更点は 5.06リリース - 2015-08-31 を確認してください。
それでは、Mroongaでガンガン検索してください!