Successfully reported this slideshow.

ngx_http_groonga - 全文検索nginx

0

Share

Loading in …3
×
1 of 21
1 of 21

More Related Content

Related Audiobooks

Free with a 14 day trial from Scribd

See all

ngx_http_groonga - 全文検索nginx

  1. 1. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 ngx_http_groonga 全文検索nginx 須藤功平 クリアコード nginx Tech Talks 2016-02-08
  2. 2. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 nginx HTTPサーバー HTTPリバースプロキシサーバー メールプロキシサーバー TCPプロキシサーバー 1.9.0から。まだmainline。 nginx = いろいろできるサーバー
  3. 3. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 全文検索nginx HTTPサーバー HTTPリバースプロキシサーバー メールプロキシサーバー TCPプロキシサーバー [New!]全文検索エンジン!
  4. 4. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 使い方:登録 全文検索 NGINX 登録 HTTP POST
  5. 5. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 使い方:検索 全文検索 NGINX HTTP GET ?query=nginx 検索
  6. 6. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 速度:1リクエスト 対象:Wikipedia日本語版 レコード数:約185万件 データサイズ:約7GB 検索キーワード:nginx 0.6msIntel Core i7-6700 3.40GHz
  7. 7. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 速度:スループット 0 2000 4000 6000 8000 10000 12000 14000 1 2 3 4 5 6 7 8 16 32 N CPUs = 8 requests/sec N connections 1 worker 4 workers 8 workers ワーカー数を増やすとCPUコア数までスケール
  8. 8. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 速度:スループット 0 2000 4000 6000 8000 10000 12000 14000 1 2 3 4 5 6 7 8 16 32 N workers = 8 (= N CPUs) requests/sec N connections No keep-alive With keep-alive クライアントがkeep-aliveを使うとさらにスケール
  9. 9. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 速度 1リクエストの処理も速い スループットも出る ワーカー数を増やすとスケール keep-aliveでさらにスケール
  10. 10. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 速さの理由 本物の全文検索エンジンを組込 →1リクエストの処理が速い (しかも豊富な機能) それもnginxのよさを殺さずに 例:マルチプロセスでスケール 例:性能向上用のHTTPの機能を利用 (keep-alive、レスポンス圧縮など) 例:I/O多重化(同時接続数の増加に対応)
  11. 11. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 本物の全文検索エンジン (ぐるんが)
  12. 12. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 Groonga 速い 日本語に強い(国産) ライブラリーとして使える 組み込みやすい マルチプロセス対応 複数のプロセスで同時にDBを使える
  13. 13. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 組込方法 モジュール
  14. 14. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 ngx_http_groonga 全文検索 NGINX ngx_http_groonga HTTP,I/O,TLS,... HTTP 普通の nginx
  15. 15. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 Groongaから見たメリット nginxと連携すると… プロセス管理を任せられる クライアントとのI/Oを任せられる keep-alive・認証・TLS・圧縮対応 HTTP2対応(まだmainline) 全文検索に集中できる!
  16. 16. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 困ったこと nginxのWindows用バイナリーを GNU/Linux上でビルドできない Groongaはバイナリーを配布したい Windowsが必要だとリリース作業が ツライ
  17. 17. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 対策 パッチを送る
  18. 18. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 結果 取り込まれた(1.7.7 released at 2014-10-28)
  19. 19. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 パッチが取り込まれるまで hgでパッチを作る メーリングリストに送る やりとりする 取り込まれる 結構反応してくれるから なにかあったら送るといいよ!
  20. 20. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 全文検索nginx nginx + Groonga = groonga-httpd:Groongaパッケージに含まれている nginxが全文検索エンジンに! nginxのモジュール機能で実装 モジュールを作って nginxと共存しよう!
  21. 21. ngx_http_groonga 全文検索nginx Powered by Rabbit 2.1.9 お知らせ MySQL・PostgreSQLとも共存 Groongaは肉の日リリース 2月9日にイベントあります! MySQLとPostgreSQLと 日本語全文検索 (DMM.comラボにて)

×