1. ソーシャルゲーム スケールアウトの歴史 gussan@Drecom Co., Ltd. Copyright © Drecom Co., Ltd. 12年2月20日月曜日
こんにちは。パートナーサービス部の加藤和良です。 2008年末に、mixi の年末年始対策について紹介しました。今回は、ここ数年の年末年始対策の歩みと、今年の対策について紹介したいと思います。実をいうと、設計も実装も自分じゃなかったりするのですが、このまま歴史に埋もれていくのも悲しいので、関係各所に取材してみました。 2008年末をふりかえる まずは、2008年末をふりかえってみましょう。 あのころはまだ mixi の機能も少なく、年末年始の負荷は主に日記に集中していました。そこで当時は ID Generator の改善 - mod_perl をあいだにはさんで MySQL への接続本数を減らす 最新情報DBへの書き込みを非同期に - Q4M をつかって負荷を時間軸で分散する という2つを日記に実装したのでした。 しかし、2008年末から2009年のお正月にかけて、mixi はまたも日記に
はじめまして。プラットフォーム開発本部のせじまです。好きなものはDisk I/Oです。 今回はMySQL(on Linux)のレプリケーションにまつわる、ちょっとしたお話をさせていただきたいと思います。 はじめに MySQL4.0以降のレプリケーションは、 Masterのmysqldが、INSERT/UPDATE/DELETEなどの更新情報を、バイナリログに記録する。 Slaveのmysqld(IOスレッド)は、masterのmysqldに接続し、バイナリログを転送する。 Slaveのmysqld(IOスレッド)は、受信したバイナリログ内容を、リレーログに記録する。 Slaveのmysqld(SQLスレッド)は、リレーログを読み込み、更新内容をslaveのDBに反映する。 といった仕組みになっています。図にすると次の通りです(*1)。 MySQLのレプリケーションはとても良くできた仕組みな
こんにちは! onk です。 一昨日の 11/20 に RailsDevCon2010 にスピーカーとして参加してきました。場所はオラクル青山センターさん。 聞いていただいた皆さま,ありがとうございました。いやー,30 分も話すの初めてだったので緊張したw 実行委員の皆さまもお疲れさまでした! プレゼン資料はこちら⇒とあるアプリの開発運用(トラブルシュート) 内容ですが, ソーシャルならではの負荷分散、インフラ、ログ解析とかが聞けると夢が広がっていいかも。他セッションと絶対かぶらないし。大規模サービス作ろうとしている人にはありがたいと思います。 と @2celeb さんからリクエストがあったので,『聞くだけで運用した気になるソーシャルアプリ』を主題にしました。駆け足でしたが,伝えたいことは盛り込めたかなぁと思います。少しでも参考になれば幸いです。 関連記事 RailsDevCon2010
9月1日、ゲーム開発者向けカンファレンス「CEDEC 2010」において、SNS「GREE」を運営するグリー株式会社(以下 グリー)が『大規模ソーシャルゲームのつくりかた ~60分でわかるサーバサイド技術~』と題するセッションを講演した。 一日あたり億単位のトラフィックを捌くインフラはどうなっているのか。技術者2名が解説したインフラ構築のノウハウや、ソーシャルゲームと一般のオンラインゲームとの違いについて紹介する。 オンラインゲームとソーシャルゲームとの違い 最近テレビCMでも目にする機会が多くなってきたSNS(ソーシャルネットワーキングサービス)の「GREE(グリー)」。2010年6月時点の数字で、会員数2059万人、月間353億ページビューという言わずとしれた大人気サイトだ。中でも携帯電話向けソーシャルゲームが特徴的で、専用機向けのゲームと比べるとコアゲーマー以外のプレイヤーも多く、利
2010年4月6日、Twitterは独自に開発した分散フレームワーク「Gizzard」をGitHubにオープンソースとして公開しました。Gizzardは「シャーディング」と呼ばれる、1台に格納するとパフォーマンスに影響を及ぼす大容量なデータベースを複数台に分割することで解決を図る手法をサポートするフレームワークです(図1)。TwitterのバックエンドにScalaが使われていることが以前話題となりましたが、このGizzardもScalaで書かれています。 図1 Gizzardのシステム構成モデル 出典:http://github.com/twitter/gizzard Gizzardはミドルウェアとして動作し、RailsやPHPなどで動くWebフロントエンドからのリクエストを受け取り、My-SQLやRedisのようなインメモリDB、Luceneなど各種データストアへ渡します。Twitt
こんにちは。プラットフォーム開発部のますやまと申します。 はじめに 梅雨が近づいてきてだんだん蒸し暑さを感じる季節になってまいりました。毎年この時期になると、我が家では梅酒を作ります。梅酒なんて完成品を買ってくればいいじゃない、と思うかもしれませんが、市販品だとなかなか好みの味に出会えないものです。そこで梅を数kg買ってきて漬けるわけですが、毎年ホワイトリカーや焼酎、ブランデーと酒を変えてみたり、氷砂糖の量を変えてみたり、はちみつにしてみたりするうちに、自分の理想の味に近づいてきました。やはり完全に自分好みにできると満足度は高くなります。 普段、グリーではオープンソースのソフトウェアを使用することがほとんどですが、やりたいことと「ちょっとちがう」ということが多々あります。そこで、複数のソフトウェアを組み合わせて何とか用途に合わせて使ったり、パッチを書いて挙動を変えてしまうのが一般的だと思い
前回は、kumofsはなぜスケールするかということについて紹介しました。その中で最後に、耐障害性もスケーラビリティにとって重要だーと述べました。 そこで今回は、kumofsはなぜ落ちないのか、なぜ耐障害性が高いと言えるのかーということについて紹介したいと思います。 分散システムはテストが難しいことに定評がありますが(たぶん^^;)、その中でも耐障害性の検証は最上級に困難な部類です。 耐障害性は実際のところ、アルゴリズムの設計以前に実装上のバグが大きく影響するので、設計上は耐障害性が高いと言っていても、実際に使ってみると良く止まるという話はありがちな話です。(個人で開発している場合など、開発リソースが小さい場合はなおさら) そのため耐障害性の高いシステムを実現するためには、実装しやすくバグが入り込みにくい設計も重要かなーと思います(もちろん、アルゴリズムも重要ですが)。 分散システムには複雑
■ [ruby] 大規模Railsサイトのための新しいHTTPサーバ、Unicorn githubの中の人が、ブログで「Unicorn使い始めて一ヶ月くらい経つけどいい感じだよ」と書いています。 適当に要点だけ拾ってみました。 Unicornって何よ? UnicornはRubyのためのHTTPサーバ。MongrelやThinのようなものだけど、全く違う設計と思想を持っている ありがちな構成 [mongrel] [mongrel] .. [nginx] -> [haproxy] -> [mongrel] [mongrel] .. [mongrel] [mongrel] .. 問題点: あるactionの処理に60秒以上かかったとき、Mongrelが当該スレッドをkillしようとして固まることがある メモリが一定量を超えたときMongrelを再起動するのが遅い。 デプロイ時に9個のmongre
仕事で画像キャッシュサーバーを構築した時のメモ。大規模事例の設定例が検索してもあまり見つからなかったので同じような境遇の誰かの参考になれば。 ピーク時のトラフィックは数Gbps 画像総容量は数十TB バックエンドのstorageが複数種類 規模とアクセス量とアクセスされる画像の種類が多いので、squidでdisk cacheを使用するとCOSS等を使用してもdiskIOで詰まる為、全てon memory cache。cache容量を確保する為に必然的にcacheサーバーの台数も数十台。 1. squidをsibling構成で並列に並べる cache_peer 10.0.1.1 sibling 80 3130 no-query no-digest proxy-only cache_peer 10.0.1.2 sibling 80 3130 no-query no-digest proxy-o
Real World Web: Performance & Scalabilityより。 Webサーバーのパフォーマンスとスケーラビリティ向上の方法を紹介したスライド。多方面の技術やアプリケーションの紹介がまとまっているので、Webサーバを管理している人は一度目を通しておくとよい内容。ただ、ちょっと長めで189ページある。 あと、MySQLがメインな内容である事も付け足しておく(MySQLのカンファレンスで公開されたスライドなので) このスライドで、一番強調されていたのが「THINK HORIZONAL」つまりサーバを水平展開(サーバー追加で性能向上)できるように これが一番重要だと。 結構長いので、メモ程度に項目を抜き出しておく。 セッション管理について よいセッションとは よいクッキーとは キャッシュについて 静的ページ生成など キャッシュするためのツール MySQLでのキャッシュテ
magic_multi_connections Magic Multi-Connections magic_multi_connectionsのページ Magic Multi-Connections: A “facility in Rails to talk to more than one database at a time” magic_multi_connections作った人の記事 Twitterのトラブルから見る、DB分割でスケーラブルなRailsサイト構築 magic_multi_connectionsの使い方がのってる Ruby on RailsでMagic Multi-Connectionsを使う magic_multi_connectionsの使い方がのってる 分散DB対応ライブラリ Magic Multi-Connections を試してみる magic_multi_
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちはオークション事業部プラットホーム技術のチャックです。 オークションでは一部サービスに RDBMS の MySQL を使ってサービスをご提供させていただいております。 オークションでは多くのお客様よりアクセスを頂いておりますので、大量の更新、参照の処理速度に優れた MySQL を選択し、お客様にストレスなくサービスをご利用いただけるよう 日々業務に取り組まさせていただいております。 しかし、精密機器には故障がつきもので、サービス運用の観点からは 「機器が故障するのはしかたない、しかしそれをいかに早く復旧させるか」 といったことを念頭に入れております。 実際には、障害が起こってから復旧させるのではなく、障害が発生した場合に
ここ数年の大規模サービスのシステム運用について調べてみたので参照したページやファイル、本へのリンクをまとめておく。PDF へのリンクも多数含まれているのでご注意を。 時代が時代なら企業のノウハウとして隠されていたような情報がこれだけ公開してもらえているというのが非常にありがたい。公開してくれている各企業や公開してくれている人に感謝。 あとで気付いたが、Google や Facebook の事例も探しておけばよかった。Thrift とかあったのに。「こんな情報もあったよ」などあればぜひ教えてください。追記していきます。 youtube http://d.hatena.ne.jp/stanaka/20070427/1177651323 digg http://d.hatena.ne.jp/stanaka/20070427/1177651323 livedoor http://labs.cybo
1つの例として「SAN」(Storage Area Network)があります。データを格納するストレージ自体が冗長化されている製品も多いですし、サーバをSANに接続するためのHBA(Host Bus Adapter)を二重化することも可能ですが、コストもかさみます。 現在ならば、SCSIブロックをIP化してしまう「iSCSI」も選択肢として挙げられるでしょう。ですが最近までiSCSIは、「iSCSi接続を確立するためのイニシエータが不安定だ」などといわれることもありました。また、データを共有する「NFS」(Network File System)を用いてほかのサーバにデータを保存することもできます。しかし外部にデータを置くとなると、どうしても、その分コストも高くなってしまいます。 最もコストを抑える方法を考えた場合に浮上してくる選択肢がDRBDです。Heartbeatによるサービスの冗長
KOF2008:関西オープンソース2008というイベントに来ています。 はてなの伊藤さんの講演があったので、講演メモを公開。 #ボクがメモした内容であって、100%言ったとおりに書いてあるわけじゃないので、参考としてご覧ください。 (続き) アジェンダ 大規模なデータ OSのキャッシュ MySQLの運用 大規模データアプリケーションの開発 データの例 はてなブックマークのデータ量:五千万件くらいのデータ量 このデータに対して何百万人がアクセスしてくる状況でどういう作りにするか レコード数 1073万エントリー 3134万エントリー 4143万タグ データサイズ エントリー2.5GB 何の工夫もなく普通にアクセスすると...200秒待っても結果が帰ってこない 大規模データの難しいところ 開発サーバで開発者が作っている時は快適に動いていても、多数の人間がアク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く