re:entertainment - Post

Posts Tagged with facebook

ソーシャルメディア・ネットワークのボタンリンクについて
posted by reent on December 10, 2013
当サイトにボタンをつけてみました。

以下つけたもの

・twitter
一番簡単だった。

facebook
流石にみんなやってて情報量多くできたけど、facebook上でデベロッパー登録必要でちと面倒。

はてなブックマーク(はてブ)

・mixi
こちらも登録が必要で、登録キーを入手して使うようになっている。
サービス管理
http://developer.mixi.co.jp/connect/mixi_plugin/favorite_button/get_html_code/

LINE
LINEでおくるボタン。PCで表示していてもSPでしか表示されないという優れもの。

続き...
Facebookが大規模スケーラビリティへの挑戦で学んだこと
posted by reent on October 14, 2013
(前編)~800億枚の写真データとPHPのスケーラビリティ問題
> 大量の写真データを扱うとき、ディスクの物理I/Oが性能の限界を決める。調査してみると、1つの写真を取り出すのに10回もの物理I/Oが行われていた。データは複雑なディレクトリの中に格納され、ファイルキャッシュメモリは大量の写真データのためにほとんど役に立っていなかった。
> そこでまず、ファイルメタデータの扱いやディレクトリの構造、ブロックサイズなどについて最適化を行い、物理I/Oを2~4回程度までに減らした。
> さらに、独自のHeystackと呼ばれるオーバーレイファイルシステムを構築した。これは多くの写真データを集めてそれらをOSからは1つのファイルのように見せかけ、メタデータはキャッシュするなどの仕組みを持つ。これでほとんどの場合1回の物理I/Oで写真データを取り出せるようになった(グラフ右の写真はHaystackの開発チーム)。
> Haystackはオープンソースでできている。我々はオープンソースを強く信じている。
>
> PHP を選んだ理由は、シンプルな言語で学びやすいからだ。書くのも簡単だし、読むのもデバッグも簡単。一方で、ダークサイドもある、ランタイムコストだ。 CPUとメモリの消費が大きいし、ほかの言語と統合するのも難しい。また大規模なプロジェクトでは、モジュール構造をうまくサポートしているとはいえない。
> それ以外にも、長い経験から発見したPHPの課題がある。新しく書いたコードが古いコードを遅くするということだ。例えば、PHPで書いたABCという機能にDEFという新機能を付け加えると、たとえABCからDEFを呼び出していなかったとしてもABCの動作が以前より遅くなるのだ。初期化コストなどが増加するためだ。PHPにはこうしたスケーラビリティの課題がある。
> そこでわれわれは、PHPの初期化を緩和するためのの拡張であるLazy loadingや、Cache priming、最近ではPHPをC++にコンパイルするといったアプローチを採用している。

(後編)~キャッシュが抱えるスケーラビリティの問題とデータセンターにまたがる一貫性
> Memcheを運用していく上での課題の1つは、Network Incastと呼ぶ現象だ。
> PHPクライアントがリクエストを出すと、複数のキャッシュからそれぞれ40マイクロセカンドくらいでほぼ同時にまとめて結果が返ってくる。するとスイッチがバッファオーバーランになってパケットが失われてしまうのだ。
> これをなくすために、MemcacheにTCPウィンドウィングに似たオフスライディングウィンドウプロトコルを実装し、応答時間をずらすことで解決した。
> ほかにも課題がある。どうやってキャッシュをオーガナイズするかだ。
SV(シリコンバレー)
posted by reent on October 14, 2013
facebook データセンター
posted by reent on October 13, 2013
Facebook×eコマース
posted by reent on October 13, 2013
Profile
reent (@reentw)
都内在住エンジニア。
ニュース・お役立ち情報を発信中~

ご連絡はこちらまで。
reentgm@gmail.com

Ad
Top | Archive