[Armadillo:08588] Re: DB を使用したいので使われた事のある
Yamamoto
email@hidden
2013年 1月 31日 (木) 19:16:49 JST
Yamamotoです。
微妙ですが、c)になるのかな?
処理的には
①複数のテーブルを対応するスレッドだけが基本的にinsertでデータの追加だけします。
これらのスレッドは待たされると処理上困る。
②定期的に不要に成ったデータを削除するスレッドが1ついて、これが削除対象のレコー
ドを各テーブル毎に順次selectしてupdate or delete処理します。
このスレッドは待たされても問題なし。
③不定期に各テーブルからデータ確認用のselectが実施される。
これも待たされても問題なし。
大まかなところでこんな事をしたいのですが、いずれにしろ②、③処理中に①を行おうと
すると②、③が終わるまで待たされることになりますよね。
On Thu, 31 Jan 2013 18:43:01 +0900
Shin-ya Koga <email@hidden> wrote:
> サムシングプレシャスの古賀です。
>
> Yamamotoさん([Armadillo:08586]):
> >頂いた意見を参考に基本設計していたのですが、実質動作として単一のスレッドでしか処
> >理出来ないらしいということに今頃気づいてしまいました。
> >
> >SQLiteはマルチスレッドに対応はしているけど、実際は単一スレッドでしか使用できない
> >のですね?
> >複数スレッドで使用すると最初にtransactionを使用したスレッド以外が使用しようとす
>
> これは、次のどれのことをおっしゃっているのでしょうか?
>
> a.) 複数のスレッドが DB アクセスを行っている際に、どれか一つ
> でもトランザクションを開始すると、そのトランザクションが
> commit または rollback されるまでの間、read アクセスしか
> しないスレッドもブロックされてしまうのが嫌だ。
>
> b.) 複数のスレッドが DB アクセスを行い、各々がトランザクション
> を実行する際に、最初にトランザクションを開始できたスレッド
> だけが実行されるのが嫌だ。
> ←同一 DB に対する、複数のトランザクションを同時実行でき
> る RDBMS が欲しい。
>
> c.) 同一 DB に対する select/update/delete を複数のスレッドが
> 同時実行する際に、各々の対象行が異なっていれば、最初に
> (暗黙裡の)トランザクションを開始できたスレッドしか実行さ
> れず、他のスレッドが待たされてしまうのが嫌だ。
> ←行レベルロックをサポートした RDBMS が欲しい。
>
> d.) それ以外。
>
> --
> 古賀信哉 (株)サムシングプレシャス
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
(^_^)v(^_^)/~(^_^)v(^_^)/~
山本 伸夫
email@hidden
(^_^)/~(^_^)v(^_^)/~(^_^)v
armadillo メーリングリストの案内