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

mysql:10014

From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Fri, 13 Aug 2004 20:08:56 +0900
Subject: [mysql 10014] Re: データのロックについて

 こんにちは。

Tomoyuki Ishino <ishino@xxxxxxxxxx>さんの
<20040813125258'-A=DT@xxxxxxxxxx>
"[mysql 10012] Re: データのロックについて"

>ML accountさんの主張は以下のようなものだと理解しています。
>
> (1) select〜 で暗黙的にトランザクションが始まるのはおかしい。
> (2) 従ってイン・トランザクションでない状態が存在する。
> (3) イン・トランザクションでない場合、コミットされたデータのみ
>   見えるのが正しい。(ダーティリードはしない。)
> (4) MSDEは上記を満たす。

 まあ(3)以外はそうですが、片手落ちと言うか、不正確で不十分な理解だと思
いますよ。イン・トランザクションの場合がごっそり抜けていますし。

 所で、「(3) イン・トランザクションでない場合」云々とは誰の意見です?ボ
クがそんな事を言った、とでも?「コミットされたデータは見えてしかるべき」
ならボクの意見でしょうね。もっとも、イン・トランザクションなら、コミット
されたデータが存在すると言う事の是非はあります。


> デフォルトの分離レベルがREAD COMMITTED なので、

> デフォルトの分離レベルをREPEATABLE READにできるなら、
> 一目瞭然だろうというのが、私の前の投稿の論旨です。


 理解出来ません。

 何故にデフォルトに固執するのでしょう?DBMSと言うものは、デフォルト以外
の分離レベルに設定出来ないとか、設定するのは妥当な事では無い、とでも?
ラチも無い。[mysql 10006]の内容を十分に把握された上でのお話とも思えませ
んが。


> 少なくとも Oracle / Firebird / PostgreSQL / InnoDB には、
> トランザクションに含まれない「実行可能SQL文」(オラクルの
> マニュアルでの用語ですが)はありません。

 では、MSDEを十分に試して見る事ですな。話はそれからです。


> 私はこれら以外のDBについては、ほとんど知らないので、
> イン・トランザクションでない状態が存在するDBがあるのなら、教えてください。
> また上記(3)の、
>   イン・トランザクションでない場合、コミットされたデータのみ
>   見えるのが正しい。(ダーティリードはしない。)
>
>の理由を説明してください。

 その前に、[mysql 10006]のボクの呈した疑問に答えるのが筋ではないかと思
うのですがね。YES/NOで答えられるものが4、論述する必要のあるものが2、あ
りますが。認識が不十分としても、回答しているものはその内の1個ですね。
こういうのも、ラチも無い事の内です。

 ま、それはそれとして。

 「トランザクションでない状態が存在するDB」は、石野さんが手抜きをしてい
るから出て来た質問ですね。やる事をちゃんとやっていれば出て来ないはずの質
問ですから、これに対する回答は「やる事をちゃんとやってから、また出直して
来て下さいね」となります。

 (3)は既に述べた様に、ボクの意図とは異なった事をボクの意見として書かれ
ています。自分の意見じゃないものについての質問に答える事なぞ出来る訳がな
いでしょ?とか、人の妄想に付き合う程ボクは暇じゃないですよ、とかで切って
捨てても良いのですが、まあ、「コミットされたデータは見えてしかるべき」に
付いて考えてみましょう。

 selectはその時点でのDBの内容を得るものでしょう。ならば、コミット済みの
データはDB内の確定したデータと考えられ、それが出て来ないとなるとRDBMS自
体の存在意義が問われるでしょうね。それが理由です。

 イン・トランザクションでないselectが、コミットされたデータを読むのか、
あるいは非コミッテッドデータも読むのか、これは別の話だと思いますよ。つま
り、 transactionalな場合に適用される分離レベル (での動作)を
non-transactionalな場合に準用するのかしないのか、ですね。これは実装依存
だと思います。ボク的には、準用するのがよさげとは思いますけどね。

 勿論、コミット実行(commit発行後の次のコマンド受け入れ可能となる時点)か
らコミット完了(DBへの反映)までの時間と言うものはありますから、実装次第で
はコミット実行が行われたデータが読み出せない過渡期が存在する事は考えられ
ますし、実際 Oracle8(8.0.5)はそういう動きをしますね (コミットしたプロセ
ス /接続からも読めない、高負荷や重処理や巨大データでない場合でも)。MSDE
にはその様な過渡期は無い様に見えますが、無いとは断言出来ません。これは実
用上で問題と言えば問題 (大問題)ですが、例え MSDEにこれがあるとしてもそれ
は別問題、今回の事に混ぜるべき事柄ではありません。一応念のため、この点に
ついて記して置きます。



    松枝知直    <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]