1

サインアップ/サインイン機能とともに、ユーザーが製品のレビューなどのデータを追加できるようにするアプリケーション アーキテクチャを開発しています。迅速な挿入と取得のために、MongoDB の使用を考えています。また、永続ストレージ (mongodb が破損または失敗した場合) のために、それをデータベース (postgre/msql) に保存したいと考えています。また、サインアップ/サインインについても同じことをしています。

どのレベル/レイヤーでデータをデータベースに保存する必要がありますか? そしてそれはスレッドにあるべきですか?それともMongoDBを過小評価していますか? それは強力なフェイルセーフです!

前もって感謝します。乾杯

4

1 に答える 1

3

MongoDB は、ジャーナリングを使用し、ドライバーの機能を使用して挿入と更新がジャーナルにコミットされてから戻る限り、MySQL と同じくらい (少なくとも同じくらい) 強力なフェイルセーフです。

MongoDB は、データの重要性を判断するのはユーザーに任せており、さまざまなレベルがあります。

  • "safemode = off": 挿入または更新が機能したかどうかは本当に気にしません
  • "safemode = on": MongoDB は、挿入/更新がメモリに作成されたことを確認します
  • 「セーフモード = オン」 + 「ジャーナル = オン」
  • "fsync = on" : 本当に遅いですが、ドライバーが戻る前にデータがディスクにコミットされていることを確認します
  • "w= 2" : レプリカセットを使用している場合、これを他のオプションと組み合わせて使用​​して、挿入/更新がセット内の「少なくとも 2」台のマシンに対して実行されることを保証できます。

背景情報については、http://mongly.com/Demystifying-Write-Durability/ をご覧ください。

于 2012-05-14T13:07:59.433 に答える