Mroonga de fts

1,351 views
1,222 views

Published on

2013/11/29 全文検索エンジンGroongaを囲む夕べ(略してぐるんべ) #4
あんまり俺しゃべってないですが

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,351
On SlideShare
0
From Embeds
0
Number of Embeds
85
Actions
Shares
0
Downloads
6
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Mroonga de fts

  1. 1. Mroonga de fulltextsearch 2013/11/29 yoku0825 feat. 河野隆志 ぐるんべ #4
  2. 2. [ANN] wingリポジトリ用 groonga 3.1.0 mroonga 3.10 MySQL 5.5.34, 5.6.14/MariaDB 5.5.34, 10.0.6 で最新のGroonga, Mroongaが簡単に試せます。 http://sourceforge.jp/projects/groonga/lists /archive/dev/2013-November/001931.html WING☆さん仕事はやー。。
  3. 3. ここから本編
  4. 4. \こんばんわ/
  5. 5. むるーん(^^)
  6. 6.   ∧_∧ ( ・∀・)    | | ガッ と    )    | |   Y /ノ    人    / )   <  >__∧∩ _/し' // V`Д´)/ (_フ彡        / ←>>825
  7. 7. で de
  8. 8. 全文検索
  9. 9. すなわち
  10. 10. というわけで、 事例紹介です ※テクニックは出てこないです
  11. 11. yoku0825 ● ● ● とある企業のDBA ● オラクれない ● ポスグレない ● マイエスキューエる その正体は ● 嫁の夫 ● せがれの父 写真は豆腐のぬいぐるみ
  12. 12. featuring with
  13. 13. 河野 ● ● ● そこでもインフラやってます 最近PHP勉強しながらコード書いてます ● ● 隆志 とある企業(GMOメディア株式会社)のDBA ● もとインフラ ● 2011年にDBA的な何かに転向 ● ● (かわのです こうのじゃないです) それでもインフラやってます 二児のパパ ガンダム大好き 最近 新生FF14でネカマ始めました
  14. 14. 今回お話しする事例 ● ● ● とあるサービス 5歳になりました ● WEB 5000万PV/day ● アプリ たくさんAPI request/day WEBサーバー 28台 DBサーバー ● メイン系(非全文検索) 6台 ● 全文検索 6台
  15. 15. 全文検索スレーブのとある一日
  16. 16. ( ゚д゚)ノ 先生、スレーブ5台分散とはいえ、 SELECTよりUPDATEが多いんですが
  17. 17. Mroongaを選んだ経緯
  18. 18. もともとTritonnで全文検索を実装していた
  19. 19. サービスが成長するに連れて、 スケールしなくなってきた
  20. 20. _人人人人人人人_ > もう限界! <  ̄Y^Y^Y^Y^Y^Y ̄
  21. 21. 乗り換えを決意して調べてみた
  22. 22. 要件の整理 ● 一連のサービスのコードはお手製のO/Rマッパーで統一されている ● ● 全文検索するデータは1000万件超 ● ● なのでなるべくSQLでアクセスできると嬉しいな♪ データ的には25GBくらい 更新がバカみたいにガリガリ来る ● ● システム全体としては参照の方がもちろん多いけど、サーバー1台 ごとのカウントを見ると更新が上回る あとは参照ロックフリーだと嬉しいな♪ – Tritonnではテーブルロックでスケールしなかった
  23. 23. Solr ● ● ● 他のチームがSolr 4.0(?)を検証していたのでついでにベ ンチマークしてもらったら、更新がひどすぎてあっという 間にへたって使い物にならず そもそもTritonnからSolrに移行するにはすっげー改修必 要だよね。。 もともとTritonnのMySQL(5.0)を使っていたが新しいMySQL も使いたくなってきた
  24. 24. Solrじゃダメだ…
  25. 25. Mroonga ● MySQLにのっかる ● Tritonnと同じSQLで使える ● レプリケーションできる(MySQLだから当然!) ● 参照ロックフリー ● 速い
  26. 26. ktkr!
  27. 27. で、検証してみた
  28. 28. 検証してみた ● 9割くらいのSQLはそのまま通った! 残り1割はSQL修正が必要だった… ● Tritonnで通った更新クエリが何故かMroongaで通らな かった… パフォーマンスは上々 ● ● Tritonnと比べて体感でわかるほど速い! 参照ロックフリーだから更新多い・参照多い環境でもき ちっとスケールアウトする! ● ● ● マルチカラムインデックスの更新でMySQLがcrashする etc..
  29. 29. 他にもいくつかのバグを踏み抜いた結果
  30. 30. 半年くらいの検証期間を経て、 本番に導入しました
  31. 31. 導入後 ● サイト表示速度上がったお! ● ロックしなくなったお! ● slowlog減ったお! ● スケールするお! ● 会社内でMroonga使う人が増えたお! ● でかい顔出来たお!
  32. 32.  *     +    巛 ヽ             〒 !   +    。     +       +    。  |  |     *     +   / /   イヤッッホォォォオオォオウ!         ∧_∧ / /        (´∀` / / +    。     +          ,-     f        / ュヘ    | *     +    。     +      〈_} )   |          /    ! +    。     +    +         ./  ,ヘ  |  ガタン ||| j  / |  | ||| ――――――――――――
  33. 33. ( ゚д゚)ノ 先生、切り替え直後の トラブルはなかったんですか?
  34. 34. 事前の検証が功を奏して、 入れた直後は本当に良いことづくめでした
  35. 35. ( ゚д゚)ノ 今は?
  36. 36. 運用していてうれしいこと ● ● ● MySQLのノウハウはそれなりにたまっているので、バック アップや監視の仕組みがそのまま使いまわせた。 レプリケーションで簡単参照分散ウマー ここ1年くらいで増えた新機能(mroonga_snippet, Wプラグ マ)おいしいです
  37. 37. これからの課題 ● そろそろシャーディングしたい サイトも成長してサーバーの負荷ぱねぇ ● Spider? マジで? 書き込みも分散させたい予感はする ● ● Percona XtraDB Clusterの上にMroongaが載っけられた ので調べてみようかな(yoku0825が) 5.6.13+ 3.07でメモリーリークしてるっぽいけどどうしよ う ● ● おかげでマスターがまだTritonn この前久々にmroonga_snippetで踏み抜いた ● ●
  38. 38. まとめ ● Tritonnからの移行先としてはMroonga鉄板でいいと思う ● 既存の仕組みをほぼ継承できるのは大きい ● 5台くらいまでなら運用/スケールした実績あるよ! ● Groonga開発チーム親切だよ!
  39. 39. ご清聴ありがとうございました

×