08/06/07 12:40:15
>>28
> そのインデックスは、dat一覧を出すときにdatnameでのソートが速くなるので入れました
> insert時にパフォーマンスが落ちることは分かっていたのですが、検証不足だったようです。
なるほど、思わぬ弊害ということですね。自分の検証不足でもあります。
> 根本的に、データベースが使用中ならば待つような仕組みをo2on側で用意してはどうかと思います。
> 現在は適当に5秒待ちになってますが、DBのロックをちゃんと把握して待つようにした方がいいかなあと
> もしくはタイムアウト後にリトライするかですね
激しく同意です。
いきなり
if (err != SQLITE_OK) goto error;
しないで、
err == SQLITE_BUSY 時に適当に待って何度かリトライする感じですかね。
とりあえず SQLITE_BUSY とリトライについて調べてみます。
それと、あまりにもエラーが続くようだったら、あるいはキューが溜まりすぎたら
dat 走査を一時停止するという仕組みも必要だと思われます。
メモリ使用量的な意味でも。