2016-09-06 7 views
0

lmdb(ライトニングメモリ・マップド・データベース)のドキュメントが返されたデータの妥当性に関してに次のように述べて:データベースから返さは、データベースへの変更後にlmdbから返されたデータが無効になっていますか?

値は、後続の 更新操作、または終了まで有効です。トランザクション。 を変更したり解放したりしないでください。通常、データベース自体を指しています。

iが「更新操作」は、この場合を意味するかについて少し混乱しています: は「更新操作」データベース上の任意の更新操作を意味する(例えば、おそらく別のスレッドから別の値を変更)し、又は特定の値に対する更新操作のみ?

答えて

0

「おそらく、同じトランザクションでの後続の更新操作またはトランザクションの終了まで有効です。

読み取り専用トランザクションを保持している場合、トランザクションを保持している間は別のスレッドは値を変更できません。そうしないと別のスレッドが値を無効にする前に値を正常にコピーできない可能性があります。

したがって、トランザクションが開かれている間は値は有効なままですが、読み取り専用トランザクションを長時間開いておくと、データベースが書き込み時に連続的に増加します(削除からの領域は再利用できません) )。

関連する問題