Intro 同時実行制御とは, 共有リソースにアクセスする複数のトランザクションを, いかに並列処理しつつ競合によるデータ破壊を回避するかを扱う分野である. 昨今のアプリケーションではクライアントが複数いることは珍しくない. 同時アクセスを許容せず, クライアントからの要求を直列的に処理できれば同時実行制御の課題は解決されるが, アプリケーションのレスポンスは極端に低下し使い物にならない. パフォーマンスの低下を抑えるためにトランザクションを並列化し, かつリソースの整合性を保証しなければならないため, 同時実行制御を考える必要が出てくる. Conflict 並列処理されるトランザクションの競合を制御しなかった場合の問題は主に4種類ある. 基本的にデータの一貫性は保証されない. Dirty Read (w-r) コミットされていないデータを別のトランザクションから参照できてしまう問題. ト
![同時実行制御とSQLite3 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ce62ee791b406c7ef03fbcd624a667012a3f1e28/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU1JTkwJThDJUU2JTk5JTgyJUU1JUFFJTlGJUU4JUExJThDJUU1JTg4JUI2JUU1JUJFJUExJUUzJTgxJUE4U1FMaXRlMyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTcxZjU1ODY3ZGJhZWRiYTdiNDcyYzJmNWI1MTNiYjE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwWXVraV8zMTImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWZlOWIzMzVlYjJlYWFhNjBjMjk5MzIxYTk3YTViMzdm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dc280a27949da1960fd0330bc73a8355c)