Weitere ähnliche Inhalte
Ähnlich wie スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例 (20)
Kürzlich hochgeladen (11)
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
- 2. 今から話すこと
• 自己紹介+会社紹介
• 事例紹介
– GeQuuとは
– リリースに至るまでのサービス基盤の変遷
• どのように技術的な難題を解決してきたか?
• まとめ
2 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 3. 自己紹介+会社紹介
3 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 5. 株式会社コスモルート
• 名古屋本社、東京支社
– 1989年設立、社員 約60名
• 業務系のソフトハウス
– ソフトウェア開発
• 製造業、生産管理、ERP向けが中心
• アーキテクトやインフラも守備範囲
– ソフト以外にも機械設計、電子設計
– 研究開発
• Cassandraは2010年3月頃から使っています。
5 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 6. 「terurouは何エンジニア?」『RIAかなぁ』
• 「クライアントからいかにして大量データを
操作するか?」を考えることが多い
– UX、ストレスフリーなUI設計
– データ構造、プロトコルレベルの設計
– Caching機構の設計(Frontend、Backend)
– etc...
• Silverlight, JavaScript, Android, ...
– Microsoft Tech Fielders Member
• PHP逆引きレシピ共著
6 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 7. 主催コミュニティ
• DSTokai
– 東海地方のメタコミュニティ
• コミュニティ間の連絡窓口・イベント告知
• クロスコミュニティイベントの企画
– NGK:名古屋 合同 懇親会(花見、忘年会...)
• 大規模分散技術勉強会 in 名古屋
– 通称:大名古屋
– Hadoop本読書会(全10回、完)
– 「Hadoop MapReduce デザインパターン」とか
「オンラインゲームを支える技術」も読みたい
7 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 8. 事例紹介
GeQuuとは
8 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 10. GeQuu -時空を超えろ-
• http://gequu.net/
• GeQuuの読み方は「じくー」です。
– よく「げくー」と間違えられますが…。
– Geolocation/GeomediaのGeです。
– 読み方を元に、空いているTwitterアカウントを
探してたらこのスペルになりました。
• 今年8月から公開ベータを開始しました!
– Androidクライアント公開中。
– iPhoneクライアントは現在開発中。
10 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 11. GeQuuの目指すところ
• 現在、過去、未来(!?)のその瞬間の出来事を
シームレスに表示・共有
• 位置情報を主とした様々なログの保存・解析
– 各種センサーデバイス
• GPS、地磁気、加速度…。脳波もおもしろそう。
– Tweet 、Message
– Photo、Movie
• リアルタイムコミュニケーション
11 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 14. GeQuu開発のきっかけ
• 社員が趣味でスマートフォン・GPSを使った
イマココサービスを構築した。
– 現在の位置情報をGoogleMapsに表示するだけの
シンプルなサービス
• 「現在位置」だけではなく「移動経路」も
リアルタイムに表示できないか?
– 意外にもこのようなサービスがなかった。
– B2Bサービスとして展開できそう。
14 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 15. 初期プロトタイプ
• シンプルなServlet/JSP + Oracle
– 社内の開発用Oracleを流用(何でもよかった)
• とりあえず作ってみて問題点を洗い出す。
Windows
Mobile 6.5 APサーバ Oracle
Viewer
15 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 17. RDB vs 超大量データ+超高負荷更新
• RDBを用いた大規模システムのノウハウを
適用しづらい。
– Master-Slaveレプリケーションは参照負荷を
分散させるもので、要件に合わない。
– パーティショニング+マルチマスタはシステムが
複雑化し、環境構築や運用が難しくなる。
• データの冗長化はどうする?
• サーバ台数が爆発しないか?
17 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 20. SQLがサポートされていない
• SQLではなくThrift API
– SQLの構文解析処理がボトルネックという話題が
出てきたこともあり、逆に好意的に捉えた。
• RDBも大規模化するとJOINができなくなり、
SQLを使うメリットは弱くなる。
• パフォーマンスを考慮するとリアルタイムで
実行されるクエリは軽量化する必要がある。
– PK検索、検索結果のキャッシュ、正規化崩し
20 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 21. Transactionがサポートされていない
• 業務アプリ脳「ないとアプリ作れないだろ」
– でも本当にTransactionは必要なの?
– 基幹システムを作るわけではない。
• blogやSNSではTransactionはまず使わない。
• 仮に書き込みエラーが発生しても、スマート
フォンからのログ再送+リトライができる。
– Eventual Consistencyの考え方そのもの。
• Update/Deleteを避けてInsert主体にすれば
Transactionがなくてもなんとかなる。
21 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 30. 参照用データの統合・アーカイブ
• 移動経路を表示するために何千もレコードを
読み込むのは非効率なので1つに統合する。
– ログ開始~終了の全レコードを1つに統合すると、
長時間ログの途中からのシークに支障がある。
– 一定時間ごとにブロック化する。
• 参照頻度の低いログは圧縮して退避・削除。
– キーの絶対数を減らしてしまう。
– ディスク使用量を大きく削減する狙いも。
30 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 33. 現在のシステム構成
• Cassandraでは実現が難しい検索のために、
独自のIn-Memory KVSを実装。
分散MQ
Android 送信前に APサーバ
ログ加工 独自KVS Cassandra
並列検索
Viewer HTTP
Streaming
33 All Rights Reserved,Copyright © 株式会社コスモルート 2011
- 34. まとめ
34 All Rights Reserved,Copyright © 株式会社コスモルート 2011