Kouhei Sutou
kou****@clear*****
2014年 2月 9日 (日) 17:28:20 JST
須藤です。 今日は年に一度の肉の日ですね! 去年の肉の日のイベントでは今日Droonga 1.0.0をリリースすると 意気込んでいましたが、少し間に合いませんでした。今回は Droonga 0.9.9のリリースです。1.0.0は2/28にリリースする予定で す! リリースアナウンスのエントリー: http://droonga.org/news/2014/02/09/release.html 今回1.0.0にしなかったのは、プラグインAPIをすべて安定化できな かったからです。Droongaでは次のフェーズの処理をプラグインで カスタマイズできます。(処理の呼び名は今後変わるかもしれませ んが、指すものを変える予定は今のところありません。) 1. 入出力 * 次の2つのサブフェーズにわかれる。 * 入力: クライアントが送ってきたリクエストそのものを、 そのリクエストに対する処理を実施する前に触れる。変更 も可能。前処理みたいな感じ。 * 出力: Droongaが処理した結果をクライアントに返す前に、 レスポンスそのものに触れる。変更も可能。後処理みたい な感じ。 * 利用例: * ログ * 処理時間の計測 (入力時に開始時間を記録し、出力時にその時点での時刻 との差分をレスポンスに入れる。) * 既存のコマンドのラッパーの作成 (アプリケーションに特化したsearchコマンドの作成など) 2. データ処理 * リクエストに基づいてGroongaのデータベースを操作するフェー ズ。 * addコマンドやsearchコマンドなどはこのフェーズのプラグ インとして実装されている。 3. 実行計画 * リクエストをどのように分散して実行するかを決めるフェー ズ。 * 処理を実行してからその結果を使ってさらに実行計画をたて て処理を実行する、というように1つのリクエストに対して 再帰的に実行計画を建てることができる。 * 利用例: * リソースが余っているなら同じリクエストを違うやり方で複 数のマシンで実行させて、速く返ってきた方を返す、という ような投機的実行。 * 再帰的に処理を実行して分析系の処理を実現。 4. 回収処理 * 分散した処理結果を統合するフェーズ。MapReduceのモデル だとReduceに相当。 内部的にはどの処理もプラグイン化されているのですが、APIがまだ 固めきれていなかったです。0.9.9では「入出力」のフェーズのAPI だけ固めて、使えるようにしました。他のフェーズのAPIは1.0.0ま でに固める予定です。 プラグインの作成方法については次のドキュメントを参照してくだ さい。(英語) http://droonga.org/tutorial/plugin-development/ まだ限定的ですが、プラグインを作れるようになったので、 Droongaに興味がある人はぜひ触ってみてください! プラグインをgemとして公開して他の人でも簡単に使えるようにす る、といったフローのドキュメントは1.0.0までに整備する予定で す。 まだ、エラー処理が甘く、想定外のリクエストを投げると、サーバー 側のログに残るだけでレスポンスが返ってこないなどがあります。 このメーリングリストに報告するか、かGitHubのIssuesに登録する と優先的に対応します! https://github.com/droonga/fluent-plugin-droonga/issues -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) Groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コミットへのコメントサービスはじめました: http://www.clear-code.com/services/commit-comment.html