[前][次][番号順一覧][スレッド一覧]

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]