最新情報

Droonga Engine用のRuby用クライアントライブラリとコマンドラインツールを提供するdroonga-client-rubyの、バージョン0.2.2をリリースしました!

このバージョンでは、Droongaクラスタをコマンドライン操作でGroonga感覚で利用できるツールのdroonga-groongaコマンドにおいて、標準入力を使った複数コマンドの流し込みに対応しました。 これにより、以下の要領でGroonga用のスキーマ定義ファイルなどの内容を簡単にDroongaクラスタに反映することができます。

$ cat /path/to/schema.grn | droonga-groonga --host node0 --port 10031

元々、似たようなことはgrn2drndroonga-requestコマンドの組み合わせでできていましたが、2つのコマンドの使い方を覚えなくてはならないため若干面倒でした。 groongaコマンドとほとんど同じ感覚で使える、という点が特徴のdroonga-groongaコマンド単体で標準入力からの流し込みを行えるようになったことで、Groongaからの移行がより容易になったと言えるでしょう。 Groongaを使い慣れているという方は、ぜひ試してみて下さい。

また、droonga-add, droonga-system-status, droonga-groongaの各コマンドについて、--dry-runオプションを指定することで、実際に送信される予定のメッセージの確認のみを行えるようにしました。 コマンドの実行前に影響を予想したい場合にお使い下さい。

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

コマンドラインツール群のリファレンスマニュアルが利用可能になりました!

Droongaおよび関連プロジェクトが提供する代表的なコマンドラインツールについて解説していますので、チュートリアルを読み進めたり実際にDroongaを試してみたりする際に是非とも役立てて下さい。

大変長らくお待たせしました。ようやく、待望の機能と共にDroonga 1.1.0をリリースしました!

Droongaとは?

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

どのように動作しどのように利用するのかについては、チュートリアルをご覧下さい。 また、設計について興味がある場合は概要もご覧下さい。

replicaノードの真の意味でのHot-Addが可能になりました!

今回のDroonga 1.1.0のリリースにおける最大の改善点は、replicaノードの完全なHot-Addへの対応です。 この機能はDroongaに必要な基本機能の1つとして長らく認識されていましたが、ようやく実現の運びとなりました。 今や、Droongaクラスタはダウンタイム無しでreplicaノードを追加できるようになりました。 クローリングや新規データの追加を停止する必要はもうありません!

なお、replicaノードのHot-Addを行うためには、追加する新しいreplicaノードを除いて、クラスタ内に2つ以上のreplicaノードが存在している必要があります。 詳細はreplicaノードの追加のチュートリアルを参照して下さい。

改善点の詳細な一覧

まとめ

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

2014年のいい肉の日に開催された「検索エンジンGroongaを囲む夕べ5」にご参加いただき、ありがとうございます!

Droonga 1.0.9は、定例でない臨時のリリースです。 イベントでのDroongaについての発表において遭遇してしまったいくつかの不具合は、このリリースで修正されました!

Droonga 1.0.9の改善点

まず、クラスタ管理コマンドの droonga-engine-join, droonga-engine-unjoin, droonga-engine-absorb-data がどのノード上でも動作するようになりました。 これまでのバージョンでは、これらのコマンドには分かりにくい前提条件がいくつかあり、使いにくい物となってしまっていました。

次に、クラスタから切り離されたノードがdroonga-http-serverから正しく無視されるようになりました。 1つ前のバージョンでは、droonga-http-serverはノードから既に切り離されたdroonga-engineのノードへの接続を保持したままになってしまっていました。 本バージョンから、droonga-engineのノード群は、それぞれのDroongaクラスタに固有のIDによって、お互いの関係を管理するようになりました。 droonga-http-serverはこの情報に基づいて、どのEngineノードがクラスタから切り離されたのかを正しく検出できるようになりました。

これらの修正によって、Droongaをより試していただきやすくなっています!

改善点の詳細な一覧

まとめ

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

Droongaとは?

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

どのように動作しどのように利用するのかについては、チュートリアルをご覧下さい。 また、設計について興味がある場合は概要もご覧下さい。

Droonga 1.0.8 での改善点

今回のDroonga 1.0.8のリリースは、多くの改善を含んでいます。 その中でも特に大きな話題は以下の3つです。

フロントエンドのHTTPサーバがクラスタの一部として管理されるようになりました

droonga-http-serverによるフロントエンドのHTTPサーバのノードが、Droongaクラスタの本当の一員として動作するようになりました。

これまでのバージョンでは、1つのdroonga-http-serverノードは対応する1つのdroonga-engineノードに強く結びつけられていました。 そのため、あるdroonga-engineノードが停止してしまうと、それに紐付いていたdroonga-http-serverノードまでが停止してしまっていました。

しかし、その制限はこのバージョンで解消されました。 もしdroonga-engineノードの1つが停止してしまっても、droonga-http-serverノードは自動的に、他の生存しているdroonga-engineと共に動作し続けます。

また、クライアントからのリクエストを1つのdroonga-http-serverノードが受け付けた場合でも、それらは複数のdroonga-engineノードに振り分けられるようになりました。 言い換えると、簡易的なロードバランサーのように振る舞うようになりました。

検索処理(特にgroupBy、Groongaのselectにおけるドリルダウン指定を伴う場合)のパフォーマンスの改善

シャーディングが行われていないレプリカでの検索処理における、groupBy使用時のパフォーマンスが改善されました。 また、offsetの指定を伴う検索処理についても改善があります。

以上を踏まえた、現在のDroongaとGroongaの比較のベンチマーク結果は以下の通りです:

スループットのグラフ レイテンシーのグラフ

ベンチマークの条件は以下の通りです:

詳細な結果はプレゼン資料のリポジトリに含まれています

上記のグラフを見て分かる通り、現在、単一のDroongaノードのスループット性能はGroongaのそれに匹敵しています。 それだけでなく、Droongaノードをクラスタに追加することでスループットの上限が拡大されていることも分かります。

他方、Droongaにおいては全般的にレイテンシがGroongaよりも大きいです。 しかしながら、大量のアクセスがある場合には、GroongaとDroongaの性能は逆転します。 大量のリクエストに対しては、DroongaはGroongaよりも迅速にレスポンスを返せています。

Groongaとの互換性の向上

いくつかの細かい非互換が解消され、Groongaとの互換性が向上しました。

改善点の詳細な一覧

まとめ

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

Droongaとは?

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

どのように動作しどのように利用するのかについては、チュートリアルをご覧下さい。 また、設計について興味がある場合は概要もご覧下さい。

サービス起動スクリプトの致命的な問題を修正しました!

Droonga 1.0.7は緊急のリリースです。 Droonga 1.0.6で導入されたサービス起動スクリプトには致命的な問題があり、一度インストールしたはずのdroonga-enginedroonga-http-serverの両サービスが、コンピュータの再起動後には起動できない状態となっていました。 この問題はDroonga 1.0.7で修正されています。

サービス起動スクリプトの更新を含むため、更新時には、インストールスクリプトを使って両サービスを再インストールする必要があります:

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

長らくお待たせして申し訳ありません。 先月のリリースは残念ながら見送られましたが、その甲斐あって、大きな改善を含む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プロジェクトはユーザや開発者としての皆さんのご協力をお待ちしています! 詳しくはコミュニティのページをご覧下さい。

最新情報について、今後は日本語でも情報を提供していきます。 乞う御期待!