お知らせ - 13系¶
13.05リリース - 2023-08-02¶
改良¶
[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をサポートしました。
[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向けパッケージを提供します。
改良¶
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 をバンドルしていなかった問題を修正しました。
概要¶
改良¶
[AlmaLinux] AlmaLinux 9 を新しくサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.32をサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 5.7.41をサポートしました。
複合主キーを設定しているテーブルで通常のカラムの更新ができるようになりました。 [GitHub#592] [handmoundさんが報告]
[Amazon Linux] MariaDB 10.5.10-2.amzn2.0.2をサポートしました。
[サーバ変数の一覧] 新しいサーバーステータス変数
libgroonga_support_mecab
を追加しました。[Debian GNU/Linux] MariaDB 10.5.18をサポートしました。
[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] Percona Server 5.7.40-43をサポートしました。
[Windows] MariaDB 10.7、10.8、10.9をサポートしました。
[Windows] 32bitバージョンのサポートをやめました。
[mroonga_highlight_html()] 新しいパラメータ
open_tag
とclose_tag
を追加しました。 [GitHub #537][ishitakaさんによる報告]参照カウントモードをサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.31をサポートしました。
[Ubuntu] Ubuntu 22.04 (Jammy Jellyfish) の MariaDB 10.6 をサポートしました。
クエリーのタイムアウトパラメータをサポートしました。 [GitHub #344] [かずひこさんが報告]
[CentOS][AlmaLinux] MariaDB 10.6.10, 10.7.6, 10.8.5をサポートしました。
[Oracle Linux] MySQL 8.0.30をサポートしました。
[CentOS] MySQL 5.7.39をサポートしました。
[Debian GNU/Linux] Debian 10 (buster)のサポートをやめました。
MroongaをMySQLに登録する際に、update.sql を実行する必要がないように変更しました。[GitHub #509][Jérome Perrin さんの報告]
[サーバ変数の一覧] 新しいサーバー変数
Mroonga_memory_map_size
を追加しました。[CentOS][AlmaLinux] MariaDB 10.2.44, 10.3.35、10.4.25、10.5.16、10.6.8、10.7.4をサポートしました。
修正¶
[mroonga_highlight_html()]
mroonga_highlight_html
をAS query
と一緒に使った際にメモリーリークする問題を修正しました。Windows版MariaDB 10.9以降のMroongaを使った時にMeCabの初期化に失敗する問題を修正しました。
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]
MySQL 8.0 以上を使用しているとき、
mroonga_command()
が16進数ダンプで結果を返す問題を修正しました。[AlmaLinux] AlmaLinux 8 向けMroongaのインストール手順を修正しました。[Gitter/ja:62fe4ca5b16e8236e3ef225c][handmoundさんの報告]
Mroongaのアップデートに失敗することがある問題を修正しました。 [groonga-dev,04982, groonga-dev,04987][Mitsuo YoshidaさんとOHTSUKA Soushiさんの報告]
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さん