2

Java プログラム内の SSD 上のファイルシステム (ext4) に同期する必要がある小さなトランザクションがあります。

各トランザクションの後にファイルシステムと同期する必要がある場合、これらのトランザクションを順次ファイルに書き込む最速の方法は何ですか? トランザクションあたりのデータは非常に小さいですが、トランザクション/秒が増加する場合は、(たとえばページを埋めるために) もっと書き込んでも問題ありません。

データが一度書き込まれた後は、読み取りのみです。

また、パフォーマンスを向上させるファイルシステムへの微調整はありますか? そのタスクにより適した安定したファイルシステムはありますか?

更新:これはファイル システムの問題のようです。同期を使用する場合、Ext4 は Ext3 よりもはるかに遅いですか? 提案? 更新問題の解決策は、ファイルを事前に割り当てることです ( java _file.setLength(size) で)。これにより、ext4 でスペースが事前に割り当てられ、すべてのメタデータが 1 回書き込まれます。この後、ファイルへの書き込みはユーザー データのみを編集し、メタデータは変更されません。これにより、私の場合は 10 倍高速化されました。

4

1 に答える 1

3

Journal.IOを使ってみませんか?

Journal.IOは、追加のみのローテーションログとチェックサムされた可変長レコードに基づく、依存性がなく、高速で使いやすいジャーナルストレージの実装であり、同時読み取りと書き込み、動的バッチ処理、調整可能な耐久性、およびデータ圧縮をサポートします。

于 2012-10-24T07:59:25.843 に答える