Text
Page: 1
はじめての Droonga Droongaの簡単な紹介と Groongaからの移行手順 結城洋志 はじめてのDroonga - 株式会社クリアコード Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 2
要旨 「自作のアプリケーションを GroongaからDroongaへ 今すぐ移行できるのか?」 にお答えします はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 3
気になる点、疑問点 気になる事があったら: メモして後から質問 その場で質問してもOK どこが気になったかを 教えてください! はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 4
アジェンダ Droongaとは? Droongaの何が嬉しい? Droongaの何が嬉しくない? デモ はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 5
Groongaの困った所 分散が流行ってる Groongaは分散処理に 対応していない はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 6
Droongaとは Distributed Groonga =分散Groonga はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 7
サーバ構成の違い はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 8
Groonga互換 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 9
Groonga互換 今までと同じ感覚で使える Groongaベースの 既存のアプリケーションを 最小の工数で分散対応できる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 10
データベースを分散 レプリケーション 現在の開発はここに注力 パーティショニング 現在は部分的に対応(これから改善) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 11
レプリケーション? はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 12
パーティショニング? はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 13
Groonga→Droonga 今現在得られるメリット レプリケーションできる ようになる ノードを簡単に追加・削除できる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 14
レプリケーション無しだと(1) 単一のGroongaサーバに サービスが依存 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 15
レプリケーション無しだと(1) Groongaが死ぬと…… はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 16
レプリケーション無しだと(1) サービスも道連れになる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 17
レプリケーション無しだと(2) 負荷が増大すると…… はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 18
レプリケーション無しだと(2) サービスレベルが落ちる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 19
レプリケーション有りだと(1) データが自動的に複製される はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 20
レプリケーション有りだと(1) 耐障害性が高くなる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 21
レプリケーション有りだと(1) 単一のサーバに依存しなくなる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 22
レプリケーション有りだと(1) 障害があってもサービスを 提供し続けられる はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 23
レプリケーション有りだと(2) 負荷が分散される はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 24
レプリケーション有りだと(2) 負荷の増大に対応しやすい はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 25
クラスタ構成の変更 付属のコマンドラインユーティリティ を使用 droonga-engine-join droonga-engine-unjoin はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 26
ノードの追加 % droonga-engine-join --host=cccc --replica-source-host=bbbb はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 27
ノードの切り離し % droonga-engine-unjoin --host=cccc はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 28
デモ Groongaベースの アプリケーションを作成 Droongaクラスタを構築 バックエンドをDroongaに移行 (Groongaユーザ向けの、はじめて のDroonga と同内容です) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 29
デモ:用意する物 サーバ2つ 192.168.100.50 192.168.100.51 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 30
Groonga→Droonga 今現在あるデメリット レイテンシーが低下する 処理のオーバーヘッドがある Groonga非互換の部分が まだある はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 31
Groongaとの性能比較 検索対象 Wikipedia日本語版のページ 30万件/150万件 (データベースサイズ 1.1GiB/4.3GiB) 検索クエリ ページのタイトル200件 (キャッシュヒット率50%) ベンチマーク取得手順 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 32
Groongaとの性能比較 スループット(30万件) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 33
Groongaとの性能比較 スループット(150万件) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 34
Groongaとの性能比較 レイテンシー(30万件) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 35
Groongaとの性能比較 レイテンシー(150万件) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 36
それぞれの傾向 Groonga ✓ サーバ1台の処理能力では有利 ✓ 負荷が増えるとスループットが 頭打ちになる Droonga ✓ サーバ1台の処理能力では不利 ✓ ノード追加でスループットの 上限が増える はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 37
傾向の分析 検索処理そのものが軽い時 ✓ オーバーヘッドの影響が相対的に大 ✓ Groongaの方が有利 検索処理そのものが重い時 ✓ オーバーヘッドの影響が相対的に小 ✓ Droongaの方が有利 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 38
Droongaの方が有利な場面 データベースが大きい 重いクエリが多い … はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 39
今分かっている遅くなる理由 ドリルダウンがあると遅くなる レスポンスのサイズが大きくなる と遅くなる クラスタ構成に合わせた処理の 最適化が不十分 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 40
現時点での互換性(概要) スキーマ変更系 load, delete select それ以外は未対応(今後の課題) はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 41
現時点での互換性(詳細) table操作系 table_create table_remove table_list はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 42
現時点での互換性(詳細) column操作系 column_create column_remove column_rename column_list はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 43
現時点での互換性(詳細) データ更新系 load ただし、以下は未対応 --ifexists, --input_type delete はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 44
現時点での互換性(詳細) 検索系 select ただし、以下は未対応 --scorer, --cache, --match_escalation_threshold, --query_expansion, --query_flags, --query_expander, --adjuster はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 45
とはいえ Groongaの利用状況次第では 今すぐにでもDroongaに移行できる! はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 46
改善にご協力を! 様々な条件でのベンチマーク結果 できればGroongaでの ベンチマーク結果も添えて 開発チームで認識できていない ボトルネックを明らかにしたい ベンチマーク取得手順公開中 はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 47
改善にご協力を! 実際のWebアプリケーションからの 使い勝手レポート 互換性向上の作業の 優先順位付けの参考にしたい はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2
Page: 48
改善にご協力を! フィードバックは droonga-engineのissue tracker もしくは groonga-dev ML までお寄せ下さい はじめてのDroonga - Droongaの簡単な紹介と Groongaからの移行手順 Powered by Rabbit 2.1.2