TokyoTyrantについて    椛澤 嘉弘
今回のLT•   TokyoTyrantの紹介•   その素晴らしさ•   今回で何に使っているのか•   使っていて困ったことは何か
TokyoTyrantってなに?• 不揮発性のKVSです。• MySQLのようなトランザクション処理、他  テーブルとの結合ができるRDBMSではな  く、  分散処理に向いた速度を追求したNoSQLで  す。どのくらい早いのかベンチマークht...
TokyoTyrantというかNoSQLの特             徴• ベンチマークから分かるように、かなり  早い。• 特にデータの読み込みはかなり早いので、  ソーシャルゲームなどのフラグ管理に良  くつかわれる。• スケールアウトしや...
今回はどんなことに使っているの          か。•   現在のスタミナ、スタミナの最大値•   現在のマナ•   今どこのダンジョンにいるのか•   一番進んでいるダンジョンはどこか•   ガチャが回せるかフラグ•   ログイン処理•  ...
具体的な使い方1• KVSなので、少しだけ面白い使い方を  します。(ex)スタミナの挿入・取得tt->put(“stmaina_”.$user_id,$stamina);tt->get(“stamina_”.$user_id);
具体的な使い方2• MySQLのようなテーブル型のDBならば  $user_idを入力するだけで全ての情報を取  り出せるのですが、今回はテーブル型で  はなく、KVS型でやっているので$user_idの前に、カラム名のように名前を付けることで...
今回使っていて困ったこと1• TokyoTyrantをphpから触るために  Net_TokyoTyrantというPEARの提供するラ  イブラリを使いました。• そのためTokyoTyrantの醍醐味ともいえる  add()が使えない。(中身...
その対策1• add()を一番使いたかったのは、mana関係• Staminaなどは毎回取得して判定を行わな  ければならなかったにも関わらず、mana  は中身を気にせずインクリメントしてい  きたかった。• Net_TokyoTyrantを...
今回使っていて困ったこと2• phpは動的に変数の型を決めるのですが、  Net_TokyoTyrantの中ではValueが強制的に  String型に変更されているため、ガチャフ  ラグに0と1を使おうとしていたのですが、  phpあるある的...
その対策2• Dungeonの情報については、どのダンジョンにどのフロアにどのルームにいるのかという情報があった ので、配列をJSONエンコードして、データを入れ ております。
TokyoTyrantについて    椛澤 嘉弘文字ばっかりでさーせんした!
Upcoming SlideShare
Loading in...5
×

2 12椛澤「tokyo tyrant」

457

Published on

TokyoTyrantについてだらだらとまとめました。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
457
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2 12椛澤「tokyo tyrant」

  1. 1. TokyoTyrantについて 椛澤 嘉弘
  2. 2. 今回のLT• TokyoTyrantの紹介• その素晴らしさ• 今回で何に使っているのか• 使っていて困ったことは何か
  3. 3. TokyoTyrantってなに?• 不揮発性のKVSです。• MySQLのようなトランザクション処理、他 テーブルとの結合ができるRDBMSではな く、 分散処理に向いた速度を追求したNoSQLで す。どのくらい早いのかベンチマークhttp://gihyo.jp/dev/serial/01/various-
  4. 4. TokyoTyrantというかNoSQLの特 徴• ベンチマークから分かるように、かなり 早い。• 特にデータの読み込みはかなり早いので、 ソーシャルゲームなどのフラグ管理に良 くつかわれる。• スケールアウトしやすい。(TTは無 理っぽいらしいですが)詳しくはhttp://www.atmarkit.co.jp/flinux/rensai/noSQL/ noSQL_01/01_1.html
  5. 5. 今回はどんなことに使っているの か。• 現在のスタミナ、スタミナの最大値• 現在のマナ• 今どこのダンジョンにいるのか• 一番進んでいるダンジョンはどこか• ガチャが回せるかフラグ• ログイン処理• ダンジョンで消費するスタミナ• などなど
  6. 6. 具体的な使い方1• KVSなので、少しだけ面白い使い方を します。(ex)スタミナの挿入・取得tt->put(“stmaina_”.$user_id,$stamina);tt->get(“stamina_”.$user_id);
  7. 7. 具体的な使い方2• MySQLのようなテーブル型のDBならば $user_idを入力するだけで全ての情報を取 り出せるのですが、今回はテーブル型で はなく、KVS型でやっているので$user_idの前に、カラム名のように名前を付けることで適切 なデータの挿入・取得を行っています。詳しくは、tt_game.phpに関数をまとめてお いたので、暇な時に見てください。
  8. 8. 今回使っていて困ったこと1• TokyoTyrantをphpから触るために Net_TokyoTyrantというPEARの提供するラ イブラリを使いました。• そのためTokyoTyrantの醍醐味ともいえる add()が使えない。(中身見ると実装され てなかったり)
  9. 9. その対策1• add()を一番使いたかったのは、mana関係• Staminaなどは毎回取得して判定を行わな ければならなかったにも関わらず、mana は中身を気にせずインクリメントしてい きたかった。• Net_TokyoTyrantを変更する、PEARではな くPECLの提供するTTを使う。などあったの ですが、リクエストが1回増える程度な のでとりあえず放置しています。
  10. 10. 今回使っていて困ったこと2• phpは動的に変数の型を決めるのですが、 Net_TokyoTyrantの中ではValueが強制的に String型に変更されているため、ガチャフ ラグに0と1を使おうとしていたのですが、 phpあるある的にstirng型の0や”0”などは全 てnullになっちゃうっていう怖さ。配列の 0,0,0は入るんだけど、 stirng型の0は入ら ないんですね。
  11. 11. その対策2• Dungeonの情報については、どのダンジョンにどのフロアにどのルームにいるのかという情報があった ので、配列をJSONエンコードして、データを入れ ております。
  12. 12. TokyoTyrantについて 椛澤 嘉弘文字ばっかりでさーせんした!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×