個人的には、要件が何であるかを本当に確認する必要があると思います。
サーバーの OS がどのように動作するかのダイナミクスにより、たとえ指示されたとしても、すべてが「すぐに」ディスクに移動するとは言い難いです。確かに、SQL などの ACID 技術は、単一のサーバーがダウンしたときに未完成のビジネスや特定のウィンドウ内での操作を失うことによる部分的な破損に対して脆弱であることを知っています。残念ながら、これは単一のサーバーを使用する際の問題の 1 つです。あなたはそれを受け入れるしかありません。
トランザクションは、サーバーが失敗する前にデータ全体を受信することを保証しないことに注意してください ( http://en.wikipedia.org/wiki/Database_transaction )。サーバーがトランザクションの途中で停止した場合はどうなりますか?
トランザクションの制約に基づいて安全なロールバックを実行できますが、トランザクションに必要なすべてのデータを既に受け取っていない限り (通常はそうではありません)、トランザクションの再生を継続する機能を提供するデータベースはほとんどありません。とにかく古くなる。
実際、一部のトランザクションの重みと、トランザクション内で実行されるクエリの量により、トランザクションを使用すると、MongoDB の 60 ミリ秒のディスクへの書き込みウィンドウよりも大きな運用上の損失ウィンドウが発生する可能性があると考えられます。もちろん、これは乱用に依存しますが、ストアド プロシージャと同様に、この乱用はよくあることです。
トランザクションは、カスケード削除や、銀行口座への送金などの典型的なシナリオに役立ちますが、通常、カスケード可能な削除は、(ほとんどのサイトが行うように) 行を削除済みとしてマークするアプリケーションを使用して cronjob によって実行する方が適切です (トランザクションのロールバックが表示されないようにするため)。削除されたデータは再びユーザーに返されます); このようにして、ユーザーがアプリケーションを使用している間はリアルタイムでは実行できない多くのことを実行して一貫性を確保できます。
したがって、なぜ技術が必要なのか、それが何をするのに成功するのかを本当に質問する必要があります。質問の簡潔さは、要件について完全に確信が持てないことを示しています。