3

コンテクスト

これは純粋に教育目的です。プリミティブデータベースを作成したい。焦点はパフォーマンスではありません。しかし、データベースの背後にある原則だけです。ロック/ミューテックス/トランザクションに関する資料がすでにあります。私が何も知らないのは、ディスクへの書き込み/予期しないハードウェア(電源など)の障害での永続性の保証です。

適切な回復/永続性を得るには、ファイルをディスクに書き込むときに特定の保証が必要です。

質問:

上記の目的のために、どのタイプのファイルプリミティブ(ファイルがディスクに書き込まれることを保証しますか?ファイルを開いたままにしてログに追加しますか?)が必要ですか?JVMは何を提供しますか?

ありがとう!

4

2 に答える 2

2

最近のディスクを取り巻く抽象化レイヤーが多いため、これについて話すのは非常に大きな領域ですが、JVMの観点からは、fsyncを呼び出すと、ディスク上にあるこれらのビットに依存して、実際にビットをディスクに書き込むためにfsyncにかなり依存します。 。残りはこれに基づいています。

于 2012-06-27T00:13:44.163 に答える
0

書き込みの呼び出しが戻る前にデータを強制的にディスクに書き込むには、FileChannelとcallforceを使用する必要があります

于 2012-06-27T02:49:20.577 に答える