Mroongaブログ

2018-02-09

Mroonga 8.00リリース!

今日は肉の日ですね。

Mroonga 8.00 をリリースしました!

メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、安心してアップグレードしてください!

では、今月の変更点を紹介します。

変更点

主な変更点は以下の通りです。

  • ハッシュインデックスを作成する際、使用するリソースを減らすために小さいハッシュを使うようにしました。
  • [percona57] ギャップロック検出をサポートしました。

ハッシュインデックスを作成する際、使用するリソースを減らすために小さいハッシュを使うようにしました

今回のリリースから、ハッシュインデックスのリソース使用量が少なくなります。 既存のインデックスは、再生成後から、使用するリソース量が少なくなります。

[percona57] ギャップロック検出をサポートしました

以前は、トランザクション分離レベルが SERIALIZABLE または、 REPEATABLE READ の時にギャップロックが試行 されている場合は、以下のようなエラーになり、ギャップロックが適用されませんでした。

ERROR 1105 (HY000): Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need to either rewrite queries to use all unique key columns in WHERE equal conditions, or rewrite to single-table, single-statement transaction.  Query: ALTER TABLE t ENGINE=InnoDB

今回のリリースから、上記のような状況でも、ギャップロックが適用されるようになります。

おわりに

7.11からの詳細な変更点は8.00リリース - 2018-02-09を確認してください。

それでは、Mroongaでガンガン検索してください!

2018-01-29

Mroonga 7.11リリース!

今日は肉の日ですね。

Mroonga 7.11 をリリースしました!

最初に、直近で開催されるイベントを2つ紹介します。

開催日時は1/30(火) 18:30-20:10のイベントです。第一回JPMUG DB勉強会では「MariaDBとMroongaで作る全言語対応超高速全文検索システム」と題して、「Mroongaを使った超高速な全文検索システムをどれだけ簡単に作ることができるか紹介する」内容の発表があります。

平日開催ということもあり、まだ申し込みに空きがあります。「実践 MariaDBパフォーマンスチューニング」という発表もあるようです。ご興味のある方はぜひ参加してみてください。イベントページから参加申し込みが可能です。

開催日時は2/9(金) 13:30 - 17:00のイベントです。「Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!」と題して「全文検索」を使ってWordPressに投稿したコンテンツを活かすための発表があります。

こちらもまだ申し込みに空きがあります。ご興味のある方はぜひ参加してみてください。イベントページから参加申し込みが可能です。

では、今月の変更点を紹介します。

変更点

今回のリリースでは、実験的にMariaDB 10.3向けにビルドしたパッケージの提供をはじめました。またUbuntu 17.10のMariaDB 10.1向けにパッケージの提供も始めています。試してみてうまく動かなかったら報告をもらえるとうれしいです。

主な変更点は以下の通りです。

  • CentOSでMariaDB 10.3向けのパッケージをサポートしました。
  • Ubuntu 17.10でMariaDB 10.1向けのパッケージをサポートしました。
  • macOS向けのインストール手順を更新しました。

[CentOS] MariaDB 10.3向けのパッケージをサポート

Mroonga 7.10では現在ベータ版であるMariaDB 10.3に対応しました。 しかし、パッケージとして提供はしていなかったので、実際に試すにはリリースされているソースコードから自分でビルドする必要がありました。

今回のリリースでは、実験的にCentOSでMariaDB 10.3向けのパッケージのサポートをはじめました。 インストール手順は以下を参考にしてください。

[Ubuntu] MariaDB 10.1向けのパッケージをサポートしました

今回のリリースでは、Ubuntu 17.10でMariaDB 10.1向けのパッケージのサポートをはじめました。

インストール手順は以下を参考にしてください。

[macOS] macOS向けのインストール手順を更新しました

ドキュメントで案内していたインストール手順が古く、最近のhomebrewでの変更に追従できていませんでした。 今回の更新では、homebrew-mroongaでの手順を案内するようにしました。

おわりに

7.10からの詳細な変更点は7.11リリース - 2018-01-29を確認してください。

それでは、Mroongaでガンガン検索してください!

2017-12-29

Mroonga 7.10リリース!

今日は今年最後の肉の日ですね。

Mroonga 7.10 をリリースしました!

変更点

今回のリリースでは、最適化や高速化まわりの改善がいくつも入っています。実験的な機能もあるため、試してみてうまく動かなかったら報告をもらえるとうれしいです。

また、このリリースからGroonga 7.1.0以降が必要になります。Mroonga 7.10にアップグレード後にMySQLを再起動する必要があるのでご注意ください。

主な変更点は以下の通りです。

  • [実験的] コンディションプッシュダウンを常に有効にできるようにしました
  • 固定長カラムの値の取得処理を高速化しました
  • マルチカラムインデックスでもカウントスキップ最適化をサポートしました
  • [CentOS] Percona Server 5.6.38および5.7.20に対応しました
  • MariaDB 10.3に対応しました

[実験的] コンディションプッシュダウンを常に有効にできるようにしました

コンディションプッシュダウン(検索条件をMySQLレベルではなくGroongaレベルで処理する最適化)関連の変数をいくつか追加しました。

  • Mroonga_condition_push_down
    • コンディションプッシュダウンを使う度にカウントアップします。コンディションプッシュダウンが使われたかどうかを確認するために利用できます。
  • mroonga_condition_push_down_type
    • コンデイションプッシュダウンサポートをどのように有効にするかを制御します。

mroonga_condition_push_down_type のデフォルト値は ONE_FULL_TEXT_SEARCH です。このときは WHERE 句に MATCH AGAINST が1つしかない場合だけコンディションプッシュダウンを有効にします。従来と同じ挙動です。

mroonga_condition_push_down_type の値を ALL にすると常にコンディションプッシュダウンを使うので、高速になることが期待されます。 ただ、今のところ ALL は実験的な機能です。実際に使ってみて、従来よりも高速になるかどうか、ちゃんとした結果が返ってくるかどうかのテストに協力してほしいです。 設定方法は以下です。

SET mroonga_condition_push_down_type = ALL

フィードバック先は以下から使いやすい場所を選んでください。 うまくいっても、うまくいかなくても教えてもらえるとうれしいです。 遅くなるとか結果がおかしいというときは、可能な範囲でログや再現手順を添えてもらえると助かります。

ご報告お待ちしています。

固定長カラムの値の取得処理を高速化しました

固定長カラムの値の取得処理を高速化するためにカラムキャッシュ機能をサポートしました。 この機能を使うためにはGroonga 7.1.0以降が必要なため、前述の通りMroonga 7.10からGroonga 7.1.0以降が必要になります。

マルチカラムインデックスでもカウントスキップ最適化をサポートしました

マルチカラムインデックスでもカウントスキップ最適化をサポートしました。 カウントスキップ最適化の詳細はリファレンスマニュアルを参照してください。

[CentOS] Percona Server 5.6.38および5.7.20に対応しました

今回のリリースでは、最新のリリースである Percona Server 5.6.38および5.7.20に対応したパッケージをCentos 6とCentOS 7向けに提供しはじめました。

MariaDB 10.3に対応しました

MariaDB 10.3に対応しました。MariaDB 10.3をお使いの方はぜひ試してみてください。CentOS向けのパッケージも近いうちにリリースする予定です。

おわりに

7.09からの詳細な変更点は7.10リリース - 2017-12-29を確認してください。

それでは、来年もMroongaでガンガン検索してください!

2017-11-29

Mroonga 7.09リリース!

Mroonga 7.09 をリリースしました!

変更点

今月の変更点は以下の通りです。

  • MariaDB MariaDB 10.1.29 および 10.2.11に対応しました

MariaDB 10.1.29 および 10.2.11に対応しました

今回のリリースでは、最新のリリースである MariaDB 10.1.29 および 10.2.11 に対応したパッケージをCentos 6とCentOS 7向けに提供しはじめました。

おわりに

7.08からの詳細な変更点は7.09リリース - 2017-11-29を確認してください。

それでは、Mroongaでガンガン検索してください!

2017-10-29

Mroonga 7.08リリース!

Mroonga 7.08 をリリースしました!

変更点

今月の変更点は以下の通りです。

  • Mroongaでテーブルを作成する際に、Groongaのテーブルフラグを指定できるようになりました
  • Ubuntu 17.10 (Artful Aardvark) をサポートしました

Mroongaでテーブルを作成する際に、Groongaのテーブルフラグを指定できるようになりました

いままでは、Mroongaで CREATE_TABLE する際に、Groongaのテーブルフラグを指定することが出来ませんでした。 そのため、大きなキーを大量に保存するテーブルを作成するためには、 mroonga_command を使って、Groongaの table_create コマンドを呼び出す必要がありGroongaに詳しくない人にとって、大きなキーを大量に保存するテーブルを作成するのは、難しい作業でした。 今回のリリースでは、Mroongaでテーブルを作成する際に、 KEY_LARGE フラグを指定出来るようになりました。CREATE_TABLE 時に KEY_LARGE を指定することでGroongaのコマンドを知らなくても、大きなキーを大量に保存するテーブルを作成出来るようになりました。

KEY_LARGE の指定方法は以下の通りです。

CREATE TABLE diaries (
  id INT PRIMARY KEY AUTO_INCREMENT,
  content VARCHAR(255),
  FULLTEXT INDEX (content)
) ENGINE = Mroonga COMMENT = 'engine "InnoDB"' DEFAULT CHARSET utf8 flags "TABLE_HASH_KEY|KEY_LARGE";

flags に指定できる各フラグの詳細はGroonga v7.0.8ドキュメント - 7.3.59.4.2.1.flagsを確認してください。

Ubuntu 17.10 (Artful Aardvark) をサポートしました

今回のリリースでは、今月リリースされたばかりのUbuntu 17.10 (Artful Aardvark) をサポートしました。
PPAからインストールすることができます。

おわりに

7.07からの詳細な変更点は7.08リリース - 2017-10-29を確認してください。

それでは、Mroongaでガンガン検索してください!