Java 以高频率更新小文件的最佳方式-每秒超过1000次

Java 以高频率更新小文件的最佳方式-每秒超过1000次,java,Java,我需要经常坚持一些数字——每秒超过1000次 我试过: 包装FileOutputStream的Properties.store 直接使用FileOutputStream 文件。写入 随机存取文件 在所有情况下,我都保持了文件描述符的打开状态,只是将数据溢出到其中 结果是平均每秒500个动作(…我每秒需要1000多个动作,我的最佳目标是每秒10000个动作) 我还有什么其他选择?您要求数据已写入磁盘/永久性存储的保证级别是什么?这是解决最佳解决方案的关键。要考虑的一件事是物理学。对于旋转的光盘

我需要经常坚持一些数字——每秒超过1000次

我试过:

  • 包装FileOutputStream的Properties.store
  • 直接使用FileOutputStream
  • 文件。写入
  • 随机存取文件
在所有情况下,我都保持了文件描述符的打开状态,只是将数据溢出到其中

结果是平均每秒500个动作(…我每秒需要1000多个动作,我的最佳目标是每秒10000个动作)


我还有什么其他选择?

您要求数据已写入磁盘/永久性存储的保证级别是什么?这是解决最佳解决方案的关键。要考虑的一件事是物理学。对于旋转的光盘,您只能在每次光盘旋转时写入或重写给定的磁盘块一次。例如,一个7200 rpm的磁盘每秒最多可以重写一个物理磁盘块120次。要获得比这更快的“提交”速度,您需要在硬盘前面有一个非易失性缓存。您应该将更改存储在内存中,并且每隔一秒左右只将更改提交到磁盘一次。@user7153055每次操作的数据量是多少,以字节为单位?现在流行的是只附加的方法(“不可变数据库”),这会是一个选项,最大化吞吐量吗?有了这些信息,人们可以计算出更多的数字。好的OLRAM磁盘,每十分钟一次文件备份。。