Text
Page: 1
Droonga
の
紹介
未来検索ブラジル
森大二郎
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 2
今日の内容
Droongaとは?
設計方針
実装
現状
今後の予定
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 3
Droongaって何ですか?
Distributedの"D"
リアルタイム分散処理エンジン
分散データストア
分散型全文検索エンジン
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 4
設計方針
ストリーム指向
リアルタイム指向
可用性重視
拡張性重視
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 6
ストリーム処理
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 7
ストリーム処理
入出力:JSONデータストリーム
入力データを処理
データストアを参照・更新
(必要なら)
0個以上のデータを出力
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 8
カスケードして様々な処理
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 9
分散検索エンジンも..
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 11
ここで言うリアルタイム:
情報が発生したら
必要とする人に
最短の遅延時間で届ける
...そのために
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 12
情報を受け取ったら
索引をすぐに更新する
購読してた人に即届ける
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 13
リアルタイム指向
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 14
可用性重視
shared nothing
レプリケーション
結果整合性重視
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 15
拡張性重視
Pluginで機能拡張
Rubyで書ける!
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 16
Pluginで拡張
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 17
実装
二つのコンポートネント
Protocol Adapter
Droonga Engine
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 18
コンポーネント
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 19
Droonga Engine
実処理エンジン
複数エンジンでクラスタを構成
通信: MessagePack Stream
Fluentdのplugin
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 20
Protocol Adapter
APIを提供
HTTP(Rest) API
Socket.IO(WebSocket) API
Node.JS上で動作
Expressのplugin
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 21
Engineのモジュール構成
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 22
モジュール構成
Adapter:
JSONデータを整形
Dispatcher: 処理フローを計画
Distributor:データを配布
Droonga の 紹介
Handler: 実処理
Collector: データを集約
Powered by Rabbit 2.1.1
Page: 23
クラスタの構成
1クラスタに複数のdataset
dataset毎にpartition/replica
数を設定
ハッシュ値と世代でpartition
catalog.json
全パーティション構成を記述
全ノードで共有
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 24
クラスタの構成
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 25
現状
version0.7.0 リリース!
http://droonga.org/
分散検索が一通り動作!
チュートリアルあります
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 26
使い方
gem install fluent-plugin-droonga
fluentd.confとcatalog.jsonを準備
<source>
type forward
port 24224
</source>
<match taiyaki.message>
name localhost:24224/taiyaki
type droonga
proxy true
</match>
<match output.message>
type stdout
</match>
fluentd --config fluentd.conf &
fluent-cat taiyaki.message < jsons
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 27
今後の予定
version0.8.0 (安定版)
2013/12/29リリース予定
version0.9.0 (開発版)
Groonga Http Server互換機能
2014/1/29リリース予定
version1.0.0 (安定版)
2014/2/9リリース予定
Droonga の 紹介
Powered by Rabbit 2.1.1
Page: 28
協力者募集してます!
バグレポート
Plugin開発
Droonga の 紹介
Powered by Rabbit 2.1.1