MySQLのトランザクション
Menu MenuMySQL は順序付きのテーブルロックである。LOCK TABLES を使って、これを実際に確認してみよ。
mysql> lock tables counter write, books write;Query OK, 0 rows affected (1 min 0.25 sec)
mysql> update counter set count = count+1 where author = 'taro';Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0
mysql> commit;mysql> unlock tables;
これを複数のターミナルで行って、待ち状態に入るのを観察する。
整列可能性
今までの作成したネットワークゲーム用の SQL が整列可能でない場合が存在するか?存在する場合には、それによる異常な実行例を示せ。
存在しない場合には、整列可能であることを証明せよ。
トランザクション
今までの作成したネットワークゲーム用の SQL に正しく TRANSACTION を設定せよ。これが正しく動作しているかどうかを調べよ。
オプション
デッドロックしないと言われている mysql でデッドロックさせるには、複数のserverにアクセスすれば良い。複数のserverにアクセスする perl script を書き、デッドロックを実現してみよ。