を使う等で複数回実行されても安全にしま す
2. 2つの ctx.run を使って 2PCにする
a. 1つ目の ctx.run で Prepare し、2つ目でコミットすることで、2つ目だけが複数回実行されることが あっても1度のコミットになります
b. RDBMS だとラッパー関数を使って簡単に実装できます
3. read / write を別の ctx.run にして、Virtual Object を使って Isolation する
a. これは「関数内を冪等にする」に近いですが、
SET credits = credits + 100
のようにするより、read / write を別の ctx.run にすることで、2つ目だけリトライされても同じ値で上 書きされるようになります。
また Isolation によって、その Virtual Object からのみ credits を触っている限り、不整合は起こりま せん