トランザクション?


ラグナロクオンライン“ログインゲー”ギルドマスターズで、不幸な事故が発生したらしい。

キャンプでの傭兵配置変更中に、6000人の魔導士が消えたそうだ。魔導士1人の作成には最短で20分かかる。聖職者の生成をせず魔導士に費やした延べ2000時間が一瞬で消えたということになる。

なぜこんなことが起きたのか、中のシステムは知らないが大体の想像は出来る。

傭兵の割り当ては手持ちの傭兵を各ギルドメンバーに割り当て、確定ボタンを押すという流れなのだが、この確定時のトランザクション管理がいい加減なのではないだろうか。
つまり、ギルドメンバーに割り当てていた傭兵をキャンプに移し変える処理の際、ギルドメンバーの傭兵数に0を、キャンプの傭兵数に割り当てていた数をそれぞれ保存することになるが、この間に処理が不正終了した場合、トランザクション管理をマトモにしていないと消えてしまうこともあるだろう。
処理が不正終了する可能性があることは、symfonyが500を返してきたことや、Apacheはブラウザから読み込み終了した時にPHPのプロセスをkillすることが証明してくれている。

直ぐに修正出来るのがLWの利点なのだから、早急に修正して欲しい。ほんの数行書き足すだけで済むのだから。

No Comments.

Leave a Reply

(required)

(required)