ACIDデータベースがあるとします。操作順序について明示的な保証がない場合でも、耐久性の結果として順序付けを推測できます。耐久性なしで保証されている操作は何ですか(mongo)?
- 私はデータベースに
x
を挿入し、文が - を返す今、私はので、耐久性の保証の
y
- を挿入し、私は
x
がy
前に、耐久性のある作られた知っています。
したがって、クラッシュ時に、私はどちらかは持っている:データベースのみx
x
とy
x
またはy
の
- なし。
耐久性が緩和されたデータベースを想定します。例えばsafemodeまたはgetlasterrorのないMongoDB。
2回目の操作が耐久性を持たせる前に、最初の操作が耐久性があるという保証はありますか?
これを主張する文書の一部または適切なテストを教えてください。
私のデータベースにはy
が含まれていますが、x
は含まれていませんか?
編集:
デフォルトの(唯一の)記憶メカニズムはメモリマップファイルエンジンのようです。ジャーナリングが有効になっていなければ(デフォルトでは有効になっています)、サーバーがクラッシュすると、一貫性がなく修復不能な状態になる可能性があります。答えはジャーナリングの中にあると思います。
ありがとうございますが、これは私が求めているものではありません。私は挿入命令で物事を見つけたくありません。私が見つけにくい*挿入順序と耐久性についての保証*が欲しい。私は、失敗時のデータベースの状態/一貫性について懸念しています。私はいくつかの関連情報を見つけたので、私自身の質問に答えました。 – z5h
ジャーナリングは_耐久性があります。したがって、質問の表現方法は少し誤解を招くことがあります。 – tolitius
私はあなたが言っていることを知っています。私にとって重要なポイントは、ジャーナリングなしでは、記憶メカニズムが定期的なフラッシュを伴うOS実装/管理のメモリマップファイルであることです。データベースが矛盾したり修復不能になる可能性があることを意味します。レプリケーション(ジャーナリングなし)の場合でも、データベースが不整合または修復不可能になる可能性はありますが、そうは思われません。したがって、ジャーナリング - >耐久性と発注は、逆ですが真実ではありません。 MongoDBの耐久性(ジャーナルなし)はそれほど意味するものではありません。 – z5h