BloGroonga

2016-03-29

Groonga 6.0.1リリース

Groonga 6.0.1をリリースしました!

それぞれの環境毎のインストール方法: インストール

変更内容

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

  • これまであったキーの総サイズは4GiBという制限を緩和(1つのテーブルでより多くのデータを扱えるようになりました)
  • 対象テーブルを参照しているテーブルとカラムを削除可能に(まとめて被参照テーブルを削除するのが便利になりました)
  • [実験的] 静的索引によるフレーズ検索の高速化

これまであったキーの総サイズは4GiBという制限を緩和(1つのテーブルでより多くのデータを扱えるようになりました)

今回のリリースでは、これまでのGroongaの制約である「最大総キーサイズは4GiB」という制限が緩和されました。

ただし、この機能を有効にするためには、ハッシュテーブルに KEY_LARGE フラグをつけて作成する必要があります。このフラグがついていないテーブルはこれまで通り最大総キーサイズは4GiBとして扱われます。 一方で、KEY_LARGE を有効にしたテーブルでは、最大総キーサイズは1TiBになります。

KEY_LARGE フラグは次のようにして指定します。

table_create Users TABLE_HASH_KEY|KEY_LARGE ShortText

これで、1つのハッシュテーブルでより多くのデータが扱えるようになります。

対象テーブルを参照しているテーブルとカラムを削除可能に(まとめて被参照テーブルを削除するのが便利になりました)

今回のリリースでは、対象テーブルを参照しているテーブルとカラムを削除可能にする機能がtable_removeとlogical_table_removeに入りました。

従来、以下の条件に合致する場合には、テーブルの削除が失敗するようになっていました。

  • 1つ以上のテーブルがこの削除対象のテーブルをキーの型として使っている。
  • 1つ以上のカラムがこの削除対象のテーブルを値の型として使っている。

これは、参照先がなくなることを防ぐためにデフォルトでそうなっています。 もし、参照されているまま削除してしまうと、そのテーブルを参照しているテーブルやカラムが壊れてしまうためです。

ただし、参照しているテーブルとカラムもまとめて削除したいこともあります。 そういった用途のために、–dependent yesをつけるとまとめて削除できるようになりました。 例えば次のようなケースで有用です。

table_create ReferencedTable TABLE_HASH_KEY ShortText
table_create Table1 TABLE_HASH_KEY ReferencedTable
table_create Table2 TABLE_NO_KEY
column_create Table2 reference_column COLUMN_SCALAR ReferencedTable

上記のスキーマで、table_remove ReferencedTableを実行するとエラーになります。ReferencedTableTable1のキーでもあり、Table2reference_columnからも参照されているからです。

これをtable_remove ReferencedTable --dependent yesとすると、ReferencedTableTable1Table2.reference_columnをまとめて削除することができます。 これまでは参照している側をひとつひとつ削除してからでないと削除できなかったので、参照しているテーブルやカラムが多岐にわたると、いざ削除しようとするときに面倒でした。その点が改善されています。

table_removeするときに、削除できないケースのチェックのため、データベース内のすべてのテーブルとカラムが開かれることに注意が必要です。この操作はリソースを消費するので、もし、そのせいで削除できないときには、回避策として一時的に最大スレッド数の値を1に設定します。

thread_limit 1

こうすると、チェック用に一時的に開いたテーブルとカラムを閉じるので、リソースの消費を抑えることができます。

[実験的] 静的索引によるフレーズ検索の高速化

今回のリリースでは、実験的ではありますが、静的索引によるフレーズ検索の高速化の機能が入りました。まだ実験的なのでデフォルトでは無効ですが、フレーズ検索が遅いと感じている人は以下の記事を参考に、この機能を試してみてください。

お知らせ

今月・来月は以下のイベントが予定されています。

Groongaは毎月肉の日(29日)に定期的にリリースしています。このイベントは新しくリリースされたGroonga(とGroonga関連プロダクト)の新機能を自慢しながらリリースを祝うイベントです。

予習復習なしで全文検索とGroongaについて学ぶことができるイベントです。ほぼ隔週で開催されています。内容は参加者にあわせてその場で決めるので、前の回に参加していないとついていけない、ということはありません。

また、開催は6月としばらく先ですが、MySQLとPostgreSQLと日本語全文検索の第2回の開催も決まりました。

「MySQLとPostgreSQLと日本語全文検索」の第2弾です。前回はMySQL・PostgreSQLの日本語全文検索機能を使ったことがない人向けの内容でしたが、今回は使ったことがある(触ってみたくらいで十分)人向けの内容です。

興味があるイベントがあればぜひご参加ください!

さいごに

6.0.0からの詳細な変更点は6.0.1リリース 2016-03-29を確認してください。

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