【オセロ,将棋】ボードゲーム Part3【囲碁,War】at GAMEDEV【オセロ,将棋】ボードゲーム Part3【囲碁,War】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト530:535 21/05/13 19:44:58.56 S2BvmmkM.net 株バブル弾けたか? AMDもヤバイ orz orz orz 531:310 21/05/14 00:24:09.18 UCKlrk0/.net sqlite3でエラーになる原因がほぼ特定できて、エラー処理を全面見直しました。 ・棋譜追加処理のトランザクションのCOMMITの際にBUSY状態の継続を検出した時は、 ロールバックして再度更新をやり直すという形に変更。棋譜とBOOKの整合性を保つため にも、速度面でもトランザクションは必須。 ・SQL文の事前コンパイルであるprepareでもBUSYが発生する事がわかったので、エラー 処理を行ってBUSY検出して成功するまで繰り返す事で、prepareの完了を保証する これらにより2プロセスまでのデッドロックは何度も検出してロールバックしてやり直しが 完遂するのが確認できています。 が、3つ以上の棋譜作成プロセスを同時に動かした時に、たまたま棋譜追加のタイミングが 3つ揃うと三すくみ的なデッドロック的状況になってしまうようで、ロールバックしてリトライが 3プロセスで順番に発生して無限ループに的に繰り返される状態になってしまう…。 2プロセスでは起きた事は無いのですが、3つだと起きる模様。 まだまだsqlite3の理解が足りないようです。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch