タグ

TokyoTyrantに関するnkwhrのブックマーク (3)

  • mixi Engineers’ Blog » Tokyo Tyrantによる耐高負荷DBの構築

    連休中はWiiのマリオカートをやりまくってやっとVR7000越えたmikioです。愛車はマッハ・バイクとインターセプターです。さて今回は、分散ハッシュデータベースサーバTokyo Tyrantでmixiの最終ログイン時刻を管理するようにした時の苦労話を書きます。 ログイン処理は負荷地獄 mixiでは、全てのユーザについて、各々の最終ログイン時刻を管理しています。「マイミクシィ一覧」や「お気に入り」などの画面で、友人が近い時間にログインしていてコミュニケーションがとりやすい状態にあるかどうか確認できるようにするためです。 mixiのほぼ全てのページはログインしないと見られないページなので、ほぼ全てのページにアクセスされるたびにログイン確認が行われます。したがって、最終ログイン時刻はほぼ全てのページにアクセスされる度に更新されることになります。mixiの中で最も重いデータベースのひとつとして「

    mixi Engineers’ Blog » Tokyo Tyrantによる耐高負荷DBの構築
  • 第3回 様々なデータ型を扱えるTokyoTyrant | gihyo.jp

    どんなところに使える? もっとも簡単な利用方法は、前回紹介したmemcachedの代替として利用するというものです。memcached互換プロトコルが実装されているため、memcachedを利用している場合ポート番号を変えるだけでTokyoTyrantに差し替えることが可能です。これだけで簡単にデータの永続性が得られます。 また、テーブルデータベースを利用すれば一つのkeyに対して複数のvalueを持たせることが可能であり、keyだけでなく任意のvalueを条件としてデータの検索を行うこともできます。JOINやGROUP BYといった処理は行えませんが、それ以外のほとんどの検索条件を扱えます。レスポンスはRDBMSに比べて高速なので、アクセス数が多いテーブルをTokyoTyrantのテーブルデータベースに載せ換える、といった利用方法も効果的かもしれません。 具体的な利用シーン memcac

    第3回 様々なデータ型を扱えるTokyoTyrant | gihyo.jp
  • mixi Engineers’ Blog >> Tokyo (Cabinet|Tyrant)の新機能

    アロハシャツとショートパンツとビーサンで出勤してスネ毛が美しくないと評判のmikioです。さて今回は、Tokyo Cabinet(TC)とTokyo Tyrant(TT)のそれぞれ最新版でサポートされた新機能についてご紹介します。 固定長データベース 最終ログイン時刻データベースをTTで管理する仕組みについての記事を以前書きましたが、それに対して「各レコードを固定長にすればlseek一発で参照できるよ」という趣旨のご指摘をいただきました。全くその通りで、最終ログイン時刻の値に必要な領域は各ユーザ毎に10バイトもあれば十分ですし、検索キーはユーザID(mixiにおいては1からの連番)なので、それを添字に使えば二次元配列としてデータベースを表現することができます。 ただし、yamazさんも指摘しているように、ログイン時刻データベースのスループット限界はwriteがブロックすることにより訪れるの

    mixi Engineers’ Blog >> Tokyo (Cabinet|Tyrant)の新機能
  • 1