NICE-BOAT!!

information technology weblog

艦隊これくしょんのバックエンドに MySQL Cluster の存在が見えた!?


艦隊これくしょん
艦隊これくしょん、やってますかー?やってるー?オーイエース!
流行ってますよね、か・ん・こ・れ。

聞いた話では、ITエンジニアのコミュニケーション要素に新しく

  • ドラクエ
  • ガンダム
  • 魔法少女まどか☆マギカ
  • 艦隊これくしょん (←new!!)

が、追加されたとかされないとか。まだの人、要チェックです。

ということでここから本題。

2ちゃんねるや、まとめサイトで拾った情報ですが、8月中にこのような情報を見かけておりまして、「おー」と歓声をあげてしまいました(苦笑)

【DMM/角川】艦隊これくしょん~艦これ~443隻

250 : 名無しさん@お腹いっぱい。[sage] 投稿日:2013/08/04(日) ??:??:?? ID:nyarbfts
暇だったから、艦これAPサーバとのパケットを解析したら、500エラーだった。なんとなくそんな気してたんだよね。。ちなみに500は、サーバ内部エラー。

deck_portで落ちてるけど、これは名前からして恐らく所有している艦娘の情報を調べに行くAPIだと思うんだよね。となると、怪しいのはDB周り。
だけど、他のAPIは普通に200で返ってきているあたり、なんか怪しそうなエラーの感じがする。 さらにちなみに、ボディは以下の応答。

データベースエラーが発生しました。 Error Number: 1297 Got temporary error 20016 ‘Query aborted due to node failure’ from NDBCLUSTER

MySQLでクラスタがぶっ壊れている? クラスタリングというと、各鯖で分けている領域? 舞鶴の艦娘データを保管しているDBサーバ領域が止まっているのかもしれない。。。

ちなみに、他の鯖は健康らしいという噂情報に基づく推測です。。。一般人でもここまで読めるエラー吐き出してんだから、誰か再起動しろよなDMM . com …。

467 : 名無しさん@お腹いっぱい。[sage] 投稿日:2013/08/04(日) ??:??:?? ID:2Pk7M50A
>>250
NDBCluster自体はオンメモリのストレージエンジンだけど、MySQLCluster使ってるからNDBCluster絡みのエラーがでてるんじゃね?
DBサーバーのノードのどれかがやらかしてるのか、純粋にリクエストをさばききれなくて、全体が死んでるか

951 : 名無しさん@お腹いっぱい。[sage] 投稿日:2013/08/04(日) ??:??:?? ID:I3eEQHdE
つーかmysqlクラスタとか使ってるのかここ
勇気あるなー

【DMM/角川】艦隊これくしょん~艦これ~434隻

518 : 名無しさん@お腹いっぱい。 [sage] 2013/08/04(日) ID:JylRoG9h
Error Number: 1297

Got temporary error 20016 ‘Query aborted due to node failure’ from NDBCLUSTER

SELECT *FROM (mem_furniture)INNER JOIN mst_furniture ON mem_furniture.rid = mst_furniture.idWHERE member_id = ‘330263’ORDER BY mem_furniture.rid

Filename: /var/www/html/kcsapi/models/mem_furniture.php

Line Number: 60

DBサーバ再起動かなぁ

【艦これ】でーたべーすがおちたんだな、なるほどなるほど

86: 名無しさん@お腹いっぱい。 2013/08/04(日) 15:44:15.95 ID:nyarbfts
まーた艦これ@舞鶴 DBが落ちてる

アクセス先API /kcsapi/api_get_member/ship
レスポンス 500
Error Number: 1205 Lock wait timeout exceeded; try restarting transaction

どうやらDB周りのトランザクション処理が高負荷の原因になっているようだね。何にトランザクション使っているのか意味不なんだけど。使わないならそれに越したことはない。単純なデータ構造にしておけば、戦闘処理以外でトランザクション使うところなんて無い筈なのにな…

AP-DB間の仕様に根差しているところが大きそうだから、単純な負荷分散ではどうにもならなそう。。。多分舞鶴だけ新規プレイヤー詰め込んでるから、瞬間クエリー数が他のサーバー比べて多いのだろうな。

生エラーコードのお漏らしがあるといろいろ妄想捗るよね、という良い事例です。皆様くれぐれもお気をつけください。

見た限り、ゲームデータ別の用途特性で NDB と InnoDB を組み合わせてそうな感じです。
MySQL Cluster 導入は国内導入事例も少ないし、身近の事例ではいい話を聞かないので(※)NDBエンジンを投入決断した開発運営の角川ゲームス部隊を褒めてあげたいかなあ。度胸あるなあ。

※ここにはとても書けないレベルの話

MySQL好きなインフラ屋の視点で突撃取材に行きたいくらい、大変興味あるお話ですので、クラスタ導入事例のスライドなど作って公開してくれるとうれしい人多いと思いますよ、カドカワさま。

【追記】
艦これ、api配置が /var/www/html 配下ということは、パッケージインストールしたapache + PHP のAPサーバで動いてるんですかね。
んで、/models というディレクトリ構成から読み取るならば、PHPフレームワークはZend?


NICE-BOAT!! © 2013 Frontier Theme
:)