Successfully reported this slideshow.

第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み

0

Share

Upcoming SlideShare
HerokuでGroonga
HerokuでGroonga
Loading in …3
×
1 of 23
1 of 23

第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み

0

Share

Download to read offline

第7回フクオカRuby大賞本審査用の資料です。「全文検索エンジンGroongaへのmrubyの組み込み」という応募の説明です。

次の3つの項目を含んでいます。

(1) 特徴を表現するもの
(2) Rubyを適用した箇所
(3) Rubyを活用したことによる効果、社会に及ぼす影響

第7回フクオカRuby大賞本審査用の資料です。「全文検索エンジンGroongaへのmrubyの組み込み」という応募の説明です。

次の3つの項目を含んでいます。

(1) 特徴を表現するもの
(2) Rubyを適用した箇所
(3) Rubyを活用したことによる効果、社会に及ぼす影響

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み

  1. 1. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 全文検索エンジン Groongaへの mrubyの組み込み 須藤功平 Groongaプロジェクト 第7回フクオカRuby大賞 2015-01-23
  2. 2. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 説明すること 特徴1. Rubyを適用した箇所2. Rubyを活用したことによる 効果、社会に及ぼす影響 3.
  3. 3. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 (1) 特徴 mrubyの使い方が 少し違う
  4. 4. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 使い方の分類  主体 対象者 mruby C ユーザー 向け 1 2 開発者 向け 3 4
  5. 5. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 分類の補足 主体 メインの処理を実装する言語 あるいは プログラムのエントリーポイントを 実装する言語 対象者 Rubyを書く人はだれか
  6. 6. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 よくある使い方  主体 対象者 mruby C ユーザー 向け 1 2 開発者 向け 3 4
  7. 7. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 Groongaの使い方  主体 対象者 mruby C ユーザー 向け 1 2 開発者 向け 3 4
  8. 8. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 よくある使い方(1) ユーザー向け・mruby主体 ユーザーがRubyを書く・mrubyでメインの処理を実装 拡張性が高いアプリ PCで動かすならCRubyでもよい CRuby + バインディング 単体で配布可能なバイナリーを 作れることが便利
  9. 9. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 よくある使い方(2) ユーザー向け・C主体 ユーザーがRubyを書く・Cでメインの処理を実装 プラグイン・設定 C側がマルチスレッドや マルチプロセスでも組み込みやすい CRubyだと難しい・面倒 シグナル・RUBY_INIT_STACK…
  10. 10. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 よくある使い方(3) 開発者向け・mruby主体 開発者がRubyを書く・mrubyでメインの処理を実装 組み込み環境向けアプリケーション 消費リソースが少なくてうれしい 開発速度があがる CRuby感覚で使うと機能が少なくて ツライ
  11. 11. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 Groongaの使い方  主体 対象者 mruby C ユーザー 向け 1 2 開発者 向け 3 4
  12. 12. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 Groongaの使い方 開発者向け・C主体 開発者がRubyを書く・Cでメインの処理を実装 アプリ内のコア機能の一部を実装 開発速度があがる mruby対応がそこそこ大変 バインディングの開発・ビルドシステムへの統合・ テストの仕組み…
  13. 13. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 開発者向け・C主体の使い方 使い所は難しい 仕組み作りを乗り越えられれば有用 仕組みできる→開発速度はあがる 難易度も高い プロジェクト依存部分が大きい Groongaの事例から一般化できるといいなぁ
  14. 14. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 (2) Rubyを適用した箇所 特徴1. Rubyを適用した箇所2. Rubyを活用したことによる 効果、社会に及ぼす影響 3.
  15. 15. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 コア機能の実装 クエリーオプティマイザー 予定:式のJIT化
  16. 16. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 クエリーオプティマイザー クエリー クエリー オプティマイザー 最適化 最適化された クエリー 評価器 全文検索 普通の検索 by Yukihiro Matsumoto 結果セット
  17. 17. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 例 最適化 10 <= x && x <= 20 10 <= x <= 20 上限・下限を別に評価してAND 上限・下限を一度に評価 10 20 10 <= x x <= 20 && 10 20
  18. 18. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 mrubyは割にあうか 最適化→10倍以上高速化も可 C→mrubyの速度低下は影響小 C→mrubyで開発速度向上 課題:GDBが使えない →ppをmrubyに移植してなんとか…
  19. 19. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 予定:式のJIT化 クエリー JITコンパイラー コンパイル クエリー専用 評価器 評価器を 実行 全文検索 普通の検索 by Yukihiro Matsumoto 結果セット + LLVM API
  20. 20. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 (3) 影響 特徴1. Rubyを適用した箇所2. Rubyを活用したことによる 効果、社会に及ぼす影響 3.
  21. 21. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 影響(1) 「コア機能をRubyで実装」 という使い方の実例を示した フリーソフトウェアなので 他のプロダクトは参考にできる 仕組み作りをできれば割にあう →「技術支援」という仕事をしたい
  22. 22. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 影響(2) mrubyがよくなる 開発中に見つけた問題は 直してパッチを送っている
  23. 23. 全文検索エンジン Groongaへの mrubyの組み込み Powered by Rabbit 2.1.3 まとめ 特徴 類をみないmrubyの使い方 1. Rubyを適用した箇所 クエリーオプティマイザー 2. Rubyを活用したことによる 効果、社会に及ぼす影響 参考にできる・mrubyがよくなる 3.

×