什么是用Java编写日志到SSD的最快方法?

时间:2012-10-24 06:15:32

标签: java performance ssd ext4

我需要将小型事务同步到文件系统(ext4)到java程序中的SSD上。

如果我需要在每次交易后与文件系统同步,那么将这些事务序列写入文件的最快方法是什么? 每个事务的数据实际上很小,但是如果增加了事务,那么可以写更多(例如填充页面)。

数据写入一次后,只能读取。

此外,文件系统是否有任何调整可以提高性能? 是否有一个更适合该任务的稳定文件系统?

更新:这似乎是一个文件系统问题。使用同步时,Ext4比Ext3慢得多? 建议? UPDATE 问题的解决方案是,预先分配文件(在java _file.setLength(size)中)。这将导致在ext4上预先分配空间并且所有元数据都被写入一次。在此之后,写入文件将仅编辑用户数据,并且元数据保持不变。 在我的情况下,这导致了10倍的加速。

1 个答案:

答案 0 :(得分:3)

如何使用Journal.IO

  

Journal.IO是一种零依赖,快速且易于使用的日志存储实现,基于仅附加旋转日志和校验和可变长度记录,支持并发读写,动态批处理,可调持久性和数据压缩