保証できるものがあるとは思えません 前述の2フェーズコミット以外のデータの整合性。少なくとも
間違ったカウントを取得する可能性を最小限に抑えるためのいくつかのことがあります。挿入と更新を1つの
次に、nInserted === 1
かどうかを確認します 、およびnModified === 1
。それ以外の場合は、指定された投稿IDの再計算ジョブを再試行またはエンキューします。
再試行の場合、再試行可能な書き込み> $inc
を使用するため、有効になっています べき等の操作からはかなり遠い投稿で。
もう1つのオプションは、トランザクションレス を適用することです。 アプローチ-「commentsNumberを更新するために一定期間スクリプトを実行する」と「commentsNumberをまったく保存しない」の一種の組み合わせ。最後の再計算ジョブのタイムスタンプを保持し、その日付以降の新しいコメントをカウントする必要があります。