Droonga 1.0.6をリリースしました!

Droonga 1.0.6をリリースしました!

2014-09-29

長らくお待たせして申し訳ありません。 先月のリリースは残念ながら見送られましたが、その甲斐あって、大きな改善を含むDroonga 1.0.6をリリースしました!

Droongaとは?

DroongaはGroongaと互換性を持つ分散型の全文検索エンジンです。 Droongaクラスタは、レプリケーション機能を持つGroonga互換のHTTPサーバとして動作します。

Droongaのインストールが簡単になりました!

今回のDroonga 1.0.6のリリースにおける最大の改善点は、インストールが非常に簡単になったことです。 Droongaの主要なコンポーネントであるdroonga-enginedroonga-http-serverが、インストールスクリプト経由で導入できるようになりました。 導入にあたっては、root権限で以下のようにしてスクリプトを実行するだけでOKです:

# curl https://raw.githubusercontent.com/droonga/droonga-engine/master/install.sh | \
    bash
# curl https://raw.githubusercontent.com/droonga/droonga-http-server/master/install.sh | \
    bash

これだけで、droonga-enginedroonga-http-serverが、serviceコマンドで管理されるシステムのサービスとして登録されます。 サービスの起動と終了も、以下のように単純なコマンドで行えます:

# service droonga-engine start
# service droonga-http-server start

また、クラスタのノード構成を管理するためのユーティリティコマンド(droonga-engine-joindroonga-engine-unjoinなど)も使いやすくなりました。 詳細は、新しくなった「使ってみる」のチュートリアルおよびそれに続く一連のチュートリアルを参照して下さい。

他方で、残念なお知らせもあります。 Droongaのインストールスクリプトは現在の所、Debian、Ubuntu、CentOS 7でのみ動作します。 他の環境(例えばCentOS 6.5、OS X、BSDなど)は、現時点では未対応です。 もし、導入に必要なコマンド群(gemnpm、そしてgit) のインストール方法や独自のサービスをシステムに登録する方法について、それらの環境でのノウハウをお持ちであれば、インストールスクリプトの改善に是非ご協力下さい!

開発者向けの情報

インストールスクリプトは最新のリリース版に対してだけでなく、masterブランチの最新リビジョンに対しても利用できます。 以下のように、追加の環境変数 VERSION を指定するだけでOKです:

# curl https://raw.githubusercontent.com/droonga/droonga-engine/master/install.sh | \
    VERSION=master bash
# curl https://raw.githubusercontent.com/droonga/droonga-http-server/master/install.sh | \
    VERSION=master bash

これにより、インストールスクリプトはmasterからサービスをインストールするようになります。 これは、次のリリースを待たずに最新の修正内容を試してみるのに便利でしょう。

また、手持ちのPC上に複数台の仮想マシンを用意するための手順の解説も新たに用意しました。 これにより、気軽にDroongaをお試しいただけます。

改善点の詳細な一覧

  • droonga-engine 1.0.6
    • インストールスクリプトが利用可能になりました。 これにより、必要なソフトウェアの導入と、droonga-engineをシステムのサービスとして設定する作業が自動化されました。 現在の所、このスクリプトはDebian、Ubuntu、CentOS 7でのみ利用できます。
    • サービスとしての利用において、専用のユーザであるdroonga-engineの権限で動作することが前提となりました。 今後は、設定ディレクトリはこのユーザのホーム以下に置かれます。
    • hostなどの既定の設定を定義する静的な設定ファイルが導入されました。 これはcatalog.jsonと同じ位置に置かれる必要があります。 これにより、droonga-engineコマンドを大量のオプションを伴って起動しなくても良くなりました。
    • droonga-engine-joinが、catalog.jsonを複製元となるノードから自動的に取得するようになりました。 これにより、droonga-engine-joinコマンドの実行前に他のノードからcatalog.jsonを手動でコピーしてこなくても良くなりました。
    • 既存のクラスタからcatalog.jsonを取得するために、既定のプラグインの1つとしてcatalogが追加されました。 このプラグインはcatalog.jsonのプラグインリストに必ず含まれていなくてはなりません。
    • 新しいコマンドラインユーティリティdroonga-engine-configureが追加されました。 これは、静的な設定ファイルとcatalog.jsonをサービス向けに生成する物です。 また、ノードを空にするために既存のデータを消去するのにも使えます。
    • ユーティリティコマンドのいくつかの必須オプションが省略可能になりました。 それらの情報は自動的に認識されます。
    • サーバがより安全に再起動するようになりました。
  • droonga-http-server 1.0.7
    • インストールスクリプトが利用可能になりました。 これにより、必要なソフトウェアの導入と、droonga-http-serverをシステムのサービスとして設定する作業が自動化されました。 現在の所、このスクリプトはDebian、Ubuntu、CentOS 7でのみ利用できます。
    • サービスとしての利用において、専用のユーザであるdroonga-http-serverの権限で動作することが前提となりました。 今後は、設定ディレクトリはこのユーザのホーム以下に置かれます。
    • portなどの既定の設定を定義する静的な設定ファイルが導入されました。 これは環境変数DROONGA_BASE_DIRで示される設定ディレクトリに置かれる必要があります。 これにより、droonga-http-serverコマンドを大量のオプションを伴って起動しなくても良くなりました。
    • 新しいコマンドラインユーティリティdroonga-http-server-configureが追加されました。 これは、静的な設定ファイルをサービス向けに生成する物です。
    • レスポンスキャッシュが正常に動作するようになりました。
  • express-droonga 1.0.5
    • レスポンスキャッシュが正常に動作するようになりました。
  • drntest 1.1.6
    • テスト結果の安定化のために、dumpの結果をソートするようにしました。
    • droonga-engineが利用可能になるまで待つために、--ready-notify-fdオプションを使うようにしました。
  • grn2drn 1.0.4
    • 出力先のディレクトリを自動的に作成するようにしました。

まとめ

  • Droonga 1.0.6をリリースしました!
  • Droongaのインストール手順が簡単になり、より使い始めやすくなりました。
  • Droongaプロジェクトは今後も新バージョンを毎月リリースしていきます。乞う御期待!

Droongaプロジェクトはユーザや開発者としての皆さんのご協力をお待ちしています! 詳しくはコミュニティのページをご覧下さい。