合宿で Tokyo Tyrant 部分、いろいろチューニングしたのでメモ。細かいのでその手の方以外はスルーの方向で。 対象は便利すぎる Tokyo Tyrant Table。 ・インデックス addCond()->addCond()->addCond() で絞り込んでいくとき、hint() で調べると最後に追加した Query から順に Index を使っていることがわかる。(5/3追記)⇒最後ではなく、2番目、一番目、と使う様子。 なので最初は大雑把な絞り込み(カテゴリとか)を行い、最後に詳細な絞り込み(ユーザーID)なんかをかけた方がパフォーマンスがあがる様子(手元のベンチマークでは上がった)。 ・数値インデックスに対する NUMGT や NUMGE 日付のタイムスタンプなどで、過去三日以内、というときに addCond(日付のとこ, 数値が~より大きい, 3日前) みたいな感じにする
2年前にPHPのセッション管理に使う箱選び 4で、セッションストレージとしてはMySQLのInnoDBを使用するのが良いと結論付けた。 当時は主にセッション数が増えていった場合のパフォーマンスについて調べて結論を出したものの、実際にMySQLをセッションストレージとして使用すると、さらに負荷が高くなった場合のパフォーマンスや可用性の部分にちらほら課題が見えてくる。 つまり、大規模なセッションストレージとして使うにはMySQLは高機能過ぎて重く、さらに冗長構成になっていても障害発生時の対応は手動が基本になってしまう。(自動化できないわけではないと思う) MySQL :: MySQL 5.6 リファレンスマニュアル :: 17.3.6 フェイルオーバー中にマスターを切り替える セッションデータの集中管理をやめる*1というのも手だけれど、それはそれで大変なので別のセッションストレージにする方向で
連休中はWiiのマリオカートをやりまくってやっとVR7000越えたmikioです。愛車はマッハ・バイクとインターセプターです。さて今回は、分散ハッシュデータベースサーバTokyo Tyrantでmixiの最終ログイン時刻を管理するようにした時の苦労話を書きます。 ログイン処理は負荷地獄 mixiでは、全てのユーザについて、各々の最終ログイン時刻を管理しています。「マイミクシィ一覧」や「お気に入り」などの画面で、友人が近い時間にログインしていてコミュニケーションがとりやすい状態にあるかどうか確認できるようにするためです。 mixiのほぼ全てのページはログインしないと見られないページなので、ほぼ全てのページにアクセスされるたびにログイン確認が行われます。したがって、最終ログイン時刻はほぼ全てのページにアクセスされる度に更新されることになります。mixiの中で最も重いデータベースのひとつとして「
何? 高速動作なんだけども、ファイルサイズが小さいDBM。 http://tokyocabinet.sourceforge.net/ チューニング無しで、cdbとどっこいなぐらい。ベンチ結果(PDF) CabinetとTyrantとあるんだけども、それぞれが何か?と言うと、CabinetがCDBとかQDBMとかと同じレイヤー。 マップ(ディクショナリ or ハッシュ or 連想配列)形式のデータ、つまり、keyとvalueのペアなデータを扱うための単純なライブラリ。 (key-valueストアとか言うのが最近のモダン(大嫌いな言葉)) Tyrantは、それのネット受け口となるもの。 INSTALL 自分はテスト環境で要らんハマリを防ぐために、/usr/local以下にアプリを入れて、隔離したい派なので以下の手順ではprefixを 指定しているけど、指定無しで、そのまま突っ込
yamaokaです。 通常のデータベースとしてではなく、Key-Valueストアの選択肢として Tokyo Tyrantを少しずつ使ってみています。 実際に運用するにあたって、いくつか行ったことを書いておきます。 ちなみに、現在の構成は1台のみでの運用です。 マルチマスター構成やレプリケーションなどは行っていません。 PHPのクライアント Tokyo Tyrantを利用するのはPHPのアプリケーションからです。 最初はmemcachedプロトコルを利用して PECL::memcacheを使っていましたが、 データの大量更新を連続で行うとデータの取得が正常に行えなくなる現象が発生したため、 Net_TokyoTyrantを一部改変したものをライブラリとして利用しています。 パフォーマンスではPECL::memcacheに負けますが、クリティカルな処理をしていないこともあり、 今のところ問題に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く