2017-09-01 15 views
0

LevelDB Documentationでは、書き込みバッチが複数の操作にアトミック性を提供できることが述べられています。それでも、書き込みバッチの実行中にアプリケーションがクラッシュした場合にどうなるかを知りたいだけです。すべての変更をロールバックするのか、それとも部分的に変更をコミットするのでしょうか?LevelDBバッチの実行中にアプリケーションがクラッシュするとどうなりますか?

バッチが実行を完了するまでに時間がかかるようなシナリオを参照しています。オール・オア・ナッシングのいずれかがディスク上に終わることを保証WriteBatch

WriteBatch batch = db.createWriteBatch(); 

    for(int i=0;i<10000000;i++){ 
     batch.put(("key "+Integer.toString(i)).getBytes(),("value "+Integer.toString(i)).getBytes()); 
    } 

    System.out.println("Batch Filled"); 

    db.write(batch); //takes around 5s -- what if system crashes here?? 

答えて

0

(コードはLevelDBJNIを使用してJavaで書かれています)。それはプロセスクラッシュの場合です。ファイルシステムのクラッシュ - 電力損失の場合 - 私はそのような保証はありません。

関連する問題