[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 メーリングリストの案内