お知らせ - 13系

13.05リリース - 2023-08-02

改良

  • [CentOS][AlmaLinux] MySQL 5.7.43をサポートしました。

  • [CentOS][AlmaLinux] MySQL 8.0.34をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 5.7.42-46をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 8.0.33-25をサポートしました。

  • [CentOS][AlmaLinux] MariaDB 10.4.30、10.5.21、10.6.14、10.8.8、10.9.7、10.10.5、10.11.4をサポートしました。

  • [Debian GNU/Linux] MariaDB 10.5.19をサポートしました。

  • [Debian GNU/Linux] Debian 12 (bookworm)をサポートしました。

    今回のリリースでは、 MariaDB 10.11 向けのパッケージのみサポートしています。

    現状、 MySQL APT Repository(https://repo.mysql.com/apt/debian/dists/) に Debian 12 向けの MySQL Community Server 8.0 のソースコードが存在しないためです。

    したがって、MySQL community server 8.0 向けのMroongaパッケージは一時的にサポートしていません。MySQL APT Repository で Debian 12 向けの MySQL Community Server のソースコードが利用可能になった後に提供予定です。

  • MariaDB 10.3のサポートをやめました。

    2023-05-25 にEOLになったためです。

13.01リリース - 2023-03-29

改良

  • [CentOS][AlmaLinux] 新しくMariaDB 10.11をサポートしました。 [GitHub#606][Patched by Josep Sanz]

  • [Amazon Linux] MariaDB 10.5.18-1.amzn2をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 8.0.32-24をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 5.7.41-44をサポートしました。

  • [Oracle Linux] Dropped support for Oracle Linux 8 and 9 をサポートしました。

    MroonaをMySQLの公式DockerイメージにインストールするためにOracle Linuxをサポートしました。しかし、MySQLの公式Dockerイメージにインストールするために必要なパッケージはMySQL community server minimal用のMroongaでした。

    そのため、Oracle Linux用のMroongaを使ってもMySQLの公式DockerイメージにはMroongaをインストールできません。

  • [Ubuntu] Ubuntu 18.04 のサポートをやめました。

    Ubuntu 18.04 はEOLとなったためです。

  • [AlmaLinux] MySQL community server minimal 8.0 をサポートしました。

    このパッケージは、 mysql:8.0-oracle Dockerイメージをサポートするためのものです。

13.00リリース - 2023-02-09

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

まずはじめに 13.00の主な変更点を紹介します。次に、Mroonga 12.00 から 12.12 までの変更点を紹介します。

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 12.00から 12.12までの主な変更点

ハイライト

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

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

    参照カウントモードは MySQLの table_open_cache <https://dev.mysql.com/doc/refman/8.0/ja/server-system-variables.html#sysvar_table_open_cache>_ とともに使用します。

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

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

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

    実際に使用する際には、ステータス変数の Open_tables <https://dev.mysql.com/doc/refman/8.0/ja/server-status-variables.html#statvar_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
    
  • クエリーのタイムアウトパラメータをサポートしました。 [GitHub #344] [かずひこさんが報告]

    MySQL/MariaDB はクエリーの実行時間がタイムアウトパラメータで指定した時間を超過した場合、クエリーを中断することができます。タイムアウトパラメータは、MySQL では MAX_EXECUTION_TIME 、MariaDBでは max_statement_time です。

    しかし、MySQL/MariaDBがクエリーを中断し結果を返した後も、Mroongaは実行中のクエリーを中断していませんでした。そのため、クエリーが大量に結果にマッチする場合には、MySQL/MariaDBがクエリーを中断した後もメモリやCPUのリソースを消費し続けていました。

    本バージョンから、Mroongaは指定された時間でクエリーを中断できるようになり、タイムアウトパラメータが正しく動作するようになりました。そのため、クエリーを中断した後もメモリやCPUリソースを消費し続ける問題も発生しなくなりました。

    この機能の使い方は以下の通りです。

    以下はMySQLの場合の例です。

      CREATE TABLE diaries(
        title TEXT
        FULLTEXT INDEX (title)
      ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
      INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
      INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
      SELECT /*+ MAX_EXECUTION_TIME(1) */ title
        FROM diaries
       WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    以下はMariaDBの場合の例です。

      CREATE TABLE diaries(
        title TEXT
        FULLTEXT INDEX (title)
      ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
      INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
      INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
      SET STATEMENT max_statement_time = 0.001 FOR
      SELECT title
        FROM diaries
       WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    この機能は、 mroonga_command() でも使えます。

  • install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]

    install.sqlが壊れていたことが原因です。この問題は、 Mroonga 12.06以降で発生していました。

  • 全文検索でメモリーリークする問題を修正しました。[OHTSUKA SoushiさんとMitsuo Yoshidaさんの報告]

    この問題は、 order limit の最適化 <https://mroonga.org/ja/docs/reference/optimizations.html#order-by-limit>_ が使われた時に発生します。ただし、MariaDBを使っている場合はこの最適化を使っていなくても発生します。

    この問題は、 Mroonga 11.03以降で発生していました。

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

概要

改良

[12.12リリース - 2023-01-29]

[12.11リリース - 2020-01-06]

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

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

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

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

[12.10リリース - 2022-11-29]

  • [CentOS][AlmaLinux] MariaDB 10.3.37、10.4.27、10.5.18、10.6.11、10.7.7、10.8.6、10.9.4をサポートしました。 [GitHub #564][Josep Sanzさんの報告][かとうさんがパッチ提供]

  • [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バージョンのサポートをやめました。

  • [mroonga_highlight_html()] 新しいパラメータ open_tagclose_tag を追加しました。 [GitHub #537][ishitakaさんによる報告]

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

[12.09リリース - 2022-10-28]

  • [CentOS][AlmaLinux] MariaDB 10.9.3をサポートしました。

  • [CentOS][Ubuntu] MySQL 5.7.40をサポートしました。

  • [CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.31をサポートしました。

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

  • クエリーのタイムアウトパラメータをサポートしました。 [GitHub #344] [かずひこさんが報告]

[12.08リリース - 2022-10-03]

  • [CentOS][AlmaLinux] MariaDB 10.6.10, 10.7.6, 10.8.5をサポートしました。

  • [Oracle Linux] MySQL 8.0.30をサポートしました。

[12.07リリース - 2022-08-30]

  • [CentOS][AlmaLinux] MariaDB 10.3.36、10.4.26、10.5.17、10.6.9、10.7.5、10.8.4をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 5.7.39-42をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 8.0.29-21をサポートしました。

[12.06リリース - 2022-08-04]

  • [CentOS] MySQL 5.7.39をサポートしました。

  • [CentOS][AlmaLinux] MySQL 8.0.30をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 8.0.28-20をサポートしました。

  • [CentOS][AlmaLinux] MariaDB 10.8をサポートしました。

  • [CentOS][AlmaLinux] MariaDB 10.2のサポートをやめました。

  • [Debian GNU/Linux] Debian 10 (buster)のサポートをやめました。

  • MroongaをMySQLに登録する際に、update.sql を実行する必要がないように変更しました。[GitHub #509][Jérome Perrin さんの報告]

[12.04リリース - 2022-06-01]

  • [サーバ変数の一覧] 新しいサーバー変数 Mroonga_memory_map_size を追加しました。

  • [CentOS][AlmaLinux] Percona Server 8.0.28-19をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 5.7.38-41をサポートしました。

  • [CentOS][AlmaLinux] MariaDB 10.2.44, 10.3.35、10.4.25、10.5.16、10.6.8、10.7.4をサポートしました。

[12.03リリース - 2022-05-06]

  • [CentOS] Percona Server 5.7.37-40をサポートしました。

  • [CentOS] MySQL 5.7.38をサポートしました。

  • [CentOS][AlmaLinux] MySQL 8.0.29をサポートしました。

[12.02リリース - 2022-03-29]

  • MySQL 8.0以降でラッパーモードのサポートをやめました。

  • サーバー変数を使って、バックトレースを無効にできるようになりました。

  • 重み付きベクターの重みに float32 型を追加しました。

  • [CentOS][AlmaLinux] MariaDB 10.3.34、10.4.24、10.5.15、10.6.7、10.7.3をサポートしました。

  • [CentOS] MariaDB 10.2.43をサポートしました。

  • [CentOS][AlmaLinux] Percona Server 8.0.27-18をサポートしました。

  • MISSING_*INVALID_* フラグをサポートしました。

[12.00リリース - 2022-02-09]

  • [Ubuntu] Ubuntuの mysql-server パッケージの最新バージョンをサポートしました。

  • [CentOS] MariaDB 10.2.42、10.3.33、10.4.23、10.5.14、10.6.6をサポートしました。

  • [AlmaLinux] MariaDB 10.3.33、10.4.23、10.5.14、10.6.6をサポートしました。

修正

[12.11リリース - 2020-01-06]

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

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

[12.10リリース - 2022-11-29]

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

[12.09リリース - 2022-10-28]

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

[12.07リリース - 2022-08-30]

  • install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]

  • MySQL 8.0 以上を使用しているとき、mroonga_command() が16進数ダンプで結果を返す問題を修正しました。

  • [AlmaLinux] AlmaLinux 8 向けMroongaのインストール手順を修正しました。[Gitter/ja:62fe4ca5b16e8236e3ef225c][handmoundさんの報告]

[12.04リリース - 2022-06-01]

  • Mroongaのアップデートに失敗することがある問題を修正しました。 [groonga-dev,04982, groonga-dev,04987][Mitsuo YoshidaさんとOHTSUKA Soushiさんの報告]

[12.03リリース - 2022-05-06]

  • MariaDB 10.5.14 上でMroongaがインデックスの作成に失敗することがある問題を修正しました。 [GitHub clear-code/redmine_full_text_search#103][wateさんの報告]

  • 全文検索でメモリーリークする問題を修正しました。[OHTSUKA SoushiさんとMitsuo Yoshidaさんの報告]

感謝

  • handmoundさん

  • Josep Sanzさん

  • かとうさん

  • ishitakaさん

  • かずひこさん

  • Jérome Perrinさん

  • Mitsuo Yoshidaさん

  • OHTSUKA Soushiさん

  • wateさん