mysql:9993
From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Wed, 11 Aug 2004 11:38:09 +0900
Subject: [mysql 09993] Re: データのロックについて
こんにちは。 とみたまさひろ <tommy@xxxxxxxxxx>さんの <20040810233937.443f0ed3.tommy@xxxxxxxxxx> "[mysql 09989] Re: データのロックについて" > 私もちゃんとマニュアルを調べて発言しているわけではなく、怪しげな記憶に > 頼って発言していたので、この機にマニュアルを読んでみました。 > > この辺でしょうか…。 > > http://dev.mysql.com/doc/mysql/ja/InnoDB_transaction_model.html ありがとうございます。なるほど、そういう実装であるのですね、MySQLは。 「REPEATABLE READ分離レベルで云々」の話は、常にイン・トランザクション であるのがMySQLの実装である、と言う事でめでたく解決です、と言いたい所で すが、REPEATABLE READ分離レベルと言いつつ実は非なるもの、が段々明確にな って来た様な。もう、何が何だか訳が分からなくなって来ましたね(再掲)。 > > 更に、「自動トランザクション開始」を仮定すると、その接続は常にイン・ト > > ランザクションと言う事ですね。つまり常にアクティブなトランザクションが残 > > る事になります。そうなると、マニュアルの別の所で色々と齟齬を生じてしまい > > ます。例えば rename tableとか。こんな説明があったりします。 > > > > > When you execute RENAME, you can't have any locked tables or active > > > transactions. > > この記述ははなんでしょうね。実際に試してみたら、BEGIN 後でも RENAME は > 成功してしまいますし…。こんな記述もありました。 > > http://dev.mysql.com/doc/mysql/ja/Implicit_commit.html > > 次のコマンドでは、トランザクションが(コマンドの実行前に COMMIT を > 発行した場合と同じように)暗黙的に終了します。 > > コマンド コマンド コマンド > ALTER TABLE BEGIN CREATE INDEX > DROP DATABASE DROP INDEX DROP TABLE > LOAD MASTER DATA LOCK TABLES RENAME TABLE > SET AUTOCOMMIT=1 START TRANSACTION TRUNCATE > > こっちの記述の方が実際の動きに合ってるようです。 ある接続がイン・トランザクションであるとして、そのトランザクションに対 して重大な影響を与える他の接続での操作を許してしまうのは、一体どういう事 なんでしょうね。「トランザクションが暗黙的に終了します」は、その影響を喰 らう他の接続のトランザクションも、と言う事ですか?(笑) REPEATABLE READ分離レベルのイン・トランザクションで REPEATABLE READが 保証されない場合がある事、これは結構重大ですね。本来あってはならない事で すから。ダーティリードと逆のコミットされているデータが読めない、selectの 結果を信じて出したupdate等が実はスカになってしまう、などと言う珍妙な事も 起こりますね。REPEATABLE READ分離レベルの動作としては、「コミットされた データ」の存在自体がかなり異様でしょう。 また色々な箇所でドキュメンテーション上 (だけと言えるかは微妙ですが)の 齟齬を生じている事、気にならない人は気にならないでしょうが、気になる人は 気になるでしょうね。ドキュメントに齟齬がある、これを非常に危険な事と考え なければならない職種もある、と言う事で。 > > 「自動トランザクション開始」は、read-opの selectでトランザクションが開 > > 始されてしまうのと同程度に異様に見えます。もう、何が何だか訳が分からなく > > なって来ましたね。 > > いえ、私は別に異様とも思いませんし、そんなに訳が分からなくなってはいま > せん。このスレッドを読んでると、訳が分からなくなってるのは松枝さんだけ > のような気もしますが :-) 基点の有無やその基点が何か、ではないでしょうか。そして疑問に思わなけれ ば、疑問と思う事も無いでしょうし。当たり前の事ですが。 他のMLで、「ベースのスペックから見て、この動作は如何なものか」の疑問に 対して、「実装がそうなっているから問題無し」攻撃や「こうすれば回避出来る」 攻撃を喰らって辟易した事がありましたが。 松枝知直 <tomom@xxxxxxxxxx> http://www.argus.ne.jp/~tomom/
9940 2004-08-04 13:17 ["Mamiya Masataka" <x] データのロックについて 9943 2004-08-05 10:06 ┣["Mamiya Masataka" <x] 9944 2004-08-05 10:36 ┗[ML account <ml@xxxxx] 9945 2004-08-05 11:26 ┣[seiji takegata <take] 9946 2004-08-05 13:30 ┃┣[ML account <ml@xxxxx] 9949 2004-08-05 15:24 ┃┃┗[EBIHARA Yuichiro <ui] 9951 2004-08-05 23:09 ┃┃ ┗[ML account <ml@xxxxx] 9952 2004-08-05 23:19 ┃┃ ┣["TAKAHASHI, Tomohiro] 9953 2004-08-06 05:37 ┃┃ ┃┗[ML account <ml@xxxxx] 9954 2004-08-06 05:51 ┃┃ ┃ ┗[ML account <ml@xxxxx] 9955 2004-08-06 11:25 ┃┃ ┃ ┗["HIROSE, Masaaki" <h] 9957 2004-08-06 13:30 ┃┃ ┃ ┗[ML account <ml@xxxxx] 9958 2004-08-06 14:04 ┃┃ ┃ ┣[SUGAWARA Hajime <sug] 9959 2004-08-06 14:17 ┃┃ ┃ ┣[とみたまさひろ <tomm] 9960 2004-08-06 16:50 ┃┃ ┃ ┗["HIROSE, Masaaki" <h] 9962 2004-08-07 16:49 ┃┃ ┃ ┗[ML account <ml@xxxxx] 9969 2004-08-09 18:24 ┃┃ ┃ ┣[<kuyo@xxxxxxxxxx> ] 9970 2004-08-10 00:20 ┃┃ ┃ ┃┗["akira" <akrst@xxxxx] 9975 2004-08-10 09:30 ┃┃ ┃ ┃ ┗[ML account <ml@xxxxx] 9976 2004-08-10 10:48 ┃┃ ┃ ┃ ┣["TAKAHASHI, Tomohiro] 9997 2004-08-11 13:03 ┃┃ ┃ ┃ ┗[<akrst@xxxxxxxxxx> ] 9983 2004-08-10 18:28 ┃┃ ┃ ┣[とみたまさひろ <tomm] 9987 2004-08-10 20:28 ┃┃ ┃ ┃┗[ML account <ml@xxxxx] 9988 2004-08-10 21:26 ┃┃ ┃ ┃ ┣[<kuyo@xxxxxxxxxx> ] 9994 2004-08-11 11:38 ┃┃ ┃ ┃ ┃┗[ML account <ml@xxxxx] 10004 2004-08-12 01:03 ┃┃ ┃ ┃ ┃ ┗[Tomoyuki Ishino <ish] 10006 2004-08-12 08:54 ┃┃ ┃ ┃ ┃ ┗[ML account <ml@xxxxx] 10012 2004-08-13 12:52 ┃┃ ┃ ┃ ┃ ┗[Tomoyuki Ishino <ish] 10014 2004-08-13 20:08 ┃┃ ┃ ┃ ┃ ┗[ML account <ml@xxxxx] 9989 2004-08-10 23:39 ┃┃ ┃ ┃ ┗[とみたまさひろ <tomm] 9992 2004-08-11 10:54 ┃┃ ┃ ┃ ┣["Tomo Ikehara" <tomo] 9995 2004-08-11 12:08 ┃┃ ┃ ┃ ┃┣["TAKAHASHI, Tomohiro] 10001 2004-08-11 16:16 ┃┃ ┃ ┃ ┃┃┣["TAKAHASHI, Tomohiro] Re: データのロックについて(余談:START TRANSACTION) 10003 2004-08-12 00:51 ┃┃ ┃ ┃ ┃┃┃┗[とみたまさひろ <tomm] 10011 2004-08-13 11:06 ┃┃ ┃ ┃ ┃┃┗["Tomo Ikehara" <tomo] 9999 2004-08-11 15:40 ┃┃ ┃ ┃ ┃┗[EBIHARA Yuichiro <ui] 10017 2004-08-13 22:42 ┃┃ ┃ ┃ ┃ ┗["Tomo Ikehara" <tomo] -> 9993 2004-08-11 11:38 ┃┃ ┃ ┃ ┗[ML account <ml@xxxxx] 10000 2004-08-11 15:53 ┃┃ ┃ ┃ ┣[EBIHARA Yuichiro <ui] 10008 2004-08-12 10:30 ┃┃ ┃ ┃ ┃┗[ML account <ml@xxxxx] 10009 2004-08-12 11:57 ┃┃ ┃ ┃ ┃ ┗[<kuyo@xxxxxxxxxx> ] 10013 2004-08-13 20:07 ┃┃ ┃ ┃ ┃ ┗[ML account <ml@xxxxx] 10016 2004-08-13 22:02 ┃┃ ┃ ┃ ┃ ┣[とみたまさひろ <tomm] 10018 2004-08-14 19:58 ┃┃ ┃ ┃ ┃ ┗[<kuyo@xxxxxxxxxx> ] 10005 2004-08-12 01:32 ┃┃ ┃ ┃ ┗[とみたまさひろ <tomm] 10010 2004-08-13 01:25 ┃┃ ┃ ┗["HIROSE, Masaaki" <h] 9956 2004-08-06 11:44 ┃┃ ┗[EBIHARA Yuichiro <ui] 9974 2004-08-10 09:30 ┃┃ ┗[ML account <ml@xxxxx] 9982 2004-08-10 16:41 ┃┃ ┗[EBIHARA Yuichiro <ui] 9986 2004-08-10 20:25 ┃┃ ┗[ML account <ml@xxxxx] 9950 2004-08-05 16:20 ┃┗[HAMAI Kyoichi <k-ham] 9947 2004-08-05 13:35 ┗["Mamiya Masataka" <x] 9948 2004-08-05 15:03 ┗[ML account <ml@xxxxx]