Mroongaブログ

2023-02-09

Mroonga 13.00リリース

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

メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく13.00へアップグレードできます!

注意

現在、Percona Server向けMroonga 13.00のパッケージを提供していません。Percona Server向けパッケージのビルドに問題があるためです。

この問題が解決したら、再度Percona Server向けパッケージを提供します。

変更点

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

改良

  • CentOS, AlmaLinux MariaDB 10.3.38、10.4.28、10.5.19、10.6.12、10.7.8、10.8.7、10.9.5、10.10.3をサポートしました。

おわりに

今回のリリースの詳細については、 リリースノート または、 リリース自慢会 を参照してください。

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

2023-01-29

Mroonga 12.12リリース

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

変更点

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

改良

以下のようにMroongaストレージエンジンを使ったテーブルに複合主キーを設定しているときは、通常のカラムを更新できませんでした。

CREATE TABLE scores (
  name char(30) NOT NULL,
  score int NOT NULL,
  PRIMARY KEY (name, score),
  note char(30),
  FULLTEXT INDEX search_note_idx (note)
) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;

INSERT INTO scores (name, score) VALUES ("Taro Yamada", 29);

UPDATE scores SET note = "Note"
  WHERE name = "Taro Yamada" AND score = 29;

ERROR 1265 (01000): data truncated for primary key column: <name>

このエラーはMariaDB向けMroongaでは発生しません。

感謝

  • handmoundさん

おわりに

今回のリリースの詳細については、 リリースノート または、 リリース自慢会 を参照してください。

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

2023-01-06

Mroonga 12.11リリース!

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

変更点

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

改良

  • CentOS, AlmaLinux 新しく、MariaDB 10.10をサポートしました。

  • Amazon Linux MariaDB 10.5.10-2.amzn2.0.2をサポートしました。

  • サーバー変数の一覧 新しいサーバーステータス変数 libgroonga_support_mecab を追加しました。

    これはGroongaがTokenMecabをサポートしている時のみtrueです。

  • Debian GNU/Linux MariaDB 10.5.18をサポートしました。

修正

  • mroonga_highlight_html() mroonga_highlight_html()AS query と一緒に使った際にメモリーリークする問題を修正しました。

  • Windows版MariaDB 10.9以降のMroongaを使った時にMeCabの初期化に失敗する問題を修正しました。

おわりに

今回のリリースの詳細については、 リリースノート または、 リリース自慢会 を参照してください。

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

2022-11-29

Mroonga 12.10リリース!

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

変更点

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

改良

  • CentOS, AlmaLinux MariaDB 10.3.37、10.4.27、10.5.18、10.6.11、10.7.7、10.8.6、10.9.4をサポートしました。

  • CentOS, AlmaLinux Percona Server 8.0.30-22をサポートしました。

  • CentOS Percona Server 5.7.40-43をサポートしました。

  • Windows MariaDB 10.7、10.8、10.9をサポートしました。

  • Windows 32bitバージョンのサポートをやめました。

    最近のMariaDBは32bitのWindowsでビルドできず、32bit向けの公式パッケージも存在しないためです。

  • mroonga_highlight_html() 新しいパラメータ open_tagclose_tag を追加しました。

    ハイライトに使うタグを open_tagclose_tag で指定できるようになりました。

    今までは固定で <span class=\"keyword\">...</span> というタグを使用しており、 class の変更や、別のタグが指定できず不便でした。 今回からタグを指定できるようになったので、 <mark>...</mark> などのハイライト用のタグも使えるようになって便利になりました。

    SELECT mroonga_highlight_html('Mroonga is the Groonga based storage engine.', 'groonga',
                                  '<mark>' AS open_tag, '</mark>' AS close_tag) AS highlighted;
    
    -- +-----------------------------------------------------------+
    -- | highlighted                                               |
    -- +-----------------------------------------------------------+
    -- | Mroonga is the <mark>Groonga</mark> based storage engine. |
    -- +-----------------------------------------------------------+
    

    詳細は mroonga_highlight_html() を参照してください。

  • 参照カウントモードをサポートしました。

    この機能によりメモリー使用量を一定量に保つことができますが、パフォーマンスが悪化します。 そのため、メモリー不足の場合には、この機能を使用する前に、メモリーを増強することを検討してください。

    参照カウントモードは MySQLの table_open_cache とともに使用します。

    MySQLは table_open_cache で指定した個数のテーブルをキャッシュしておくことができます。 キャッシュされているテーブルはまだ使用中なので、Groongaのオブジェクトも解放されません。

    table_open_cache で指定した個数よりも多いテーブルが開かれたとき、使用頻度が低いテーブルが閉じられます。 参照カウントモードが有効なとき、そのタイミングでGroongaのオブジェクトも閉じられます。

    このようにして参照カウントモードではメモリー使用量を一定に保っています。

    実際に使用する際には、ステータス変数の Open_tables の値と メモリー使用量を見ながら table_open_cache の値を調整することで、メモリー使用量とパフォーマンスのバランスを調整する必要があります。 なぜなら、この機能はメモリー使用量を一定に保ちますが、その分パフォーマンスが悪化するためです。

    Open_tables の確認方法は以下の通りです。

    SHOW GLOBAL STATUS LIKE 'Open_tables';
    -- +---------------+-------+
    -- | Variable_name | Value |
    -- +---------------+-------+
    -- | Open_tables   | 643   |
    -- +---------------+-------+
    

    通常は Open_tables より table_open_cache を大きくして常に使っているすべてテーブルをキャッシュします。 しかし、メモリーに余裕がない環境では一部の使用頻度の低いテーブルをキャッシュから落として解放することでメモリー使用量を削減します。 使用頻度の低いテーブルをキャッシュから落とすには Open_tables より table_open_cache を小さくします。 table_open_cache を小さくすればするほど、より多くのテーブルがキャッシュから落ちます。 その分メモリー使用量は減りますが、テーブルの開き直しが必要になるためパフォーマンスは悪化します。 table_open_cache を小さくすればするほど、パフォーマンスが悪化するので、小さくするのはメモリー使用量が許容範囲内に収まる程度までにしておきます。

    参照カウントモードを有効にするには、my.cnfに以下の値を設定します。

    loose-mroonga-enable-reference-count = ON
    

    注: MySQL起動後に変数で指定しても参照カウントモードは有効になりません。my.cnfで指定してください。

    SET GLOBAL mroonga_enable_reference_count = ON
    

修正

  • Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。

    Mroonga 12.09 にて groonga-normalizer-mysql をバンドルするよう修正したとアナウンスしましたが、修正されていませんでした。

おわりに

今回のリリースの詳細については、 リリースノート または、 リリース自慢会 を参照してください。

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

2022-10-28

Mroonga 12.09リリース!

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

変更点

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

改良

  • CentOS, AlmaLinux MariaDB 10.9 をサポートしました。

  • Ubuntu Ubuntu 22.04 (Jammy Jellyfish) の MariaDB 10.6 をサポートしました。

  • クエリーのタイムアウトパラメータをサポートしました。

    本バージョンから、Mroongaは指定された時間でクエリーを中断できるようになり、タイムアウトパラメータ(MySQL では MAX_EXECUTION_TIME 、MariaDBでは max_statement_time)が正しく動作するようになりました。

修正

  • Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。

    このバグは、 Mroonga 12.02から存在していました。 したがって、Windows版のMroonga 12.02 から 12.08 では groonga-normalizer-mysql を使えません。

おわりに

今回のリリースの詳細については、 リリースノート または、 リリース自慢会 を参照してください。

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