Caching 它对';刷新到磁盘';?

Caching 它对';刷新到磁盘';?,caching,memory,Caching,Memory,有人能解释一下在下面的上下文中刷新到磁盘意味着什么吗?如果我正在将数据写入文件系统上的日志,这不意味着我正在将其放在磁盘上吗?您将/应该在什么时候将文件刷新到磁盘 这就提出了一种非常简单的设计:与其在内存中维护尽可能多的内容,并在空间耗尽时将其全部刷新到文件系统中,不如将其反转。所有数据都会立即写入文件系统上的持久日志,而不必刷新到磁盘。实际上,这只是意味着它被传输到内核的页面缓存中 (来自) 所有数据都会立即写入文件系统上的持久日志,而不必刷新到磁盘。实际上,这只是意味着它被传输到内核的页面缓

有人能解释一下在下面的上下文中刷新到磁盘意味着什么吗?如果我正在将数据写入文件系统上的日志,这不意味着我正在将其放在磁盘上吗?您将/应该在什么时候将文件刷新到磁盘

这就提出了一种非常简单的设计:与其在内存中维护尽可能多的内容,并在空间耗尽时将其全部刷新到文件系统中,不如将其反转。所有数据都会立即写入文件系统上的持久日志,而不必刷新到磁盘。实际上,这只是意味着它被传输到内核的页面缓存中

(来自)

所有数据都会立即写入文件系统上的持久日志,而不必刷新到磁盘。实际上,这只是意味着它被传输到内核的页面缓存中


这意味着Kafka通过
write()
syscalls将数据传递给内核——在这个时间点上,它对其他进程可见,但可能会或可能不会在磁盘上反映出来,并在重新启动后存活下来——但不会强制内核通过
fsync()
调用或类似的方式将数据匆忙发送到磁盘(适用于手头的操作系统)。如果优化吞吐量而不需要保证内容可检索,这可能是一个合适的决定:
fsync()
,其kin可能是昂贵的调用(尽管通过执行不需要查找的长时间连续写入,kafka将其磁盘IO的开销降至最低).

这意味着所有下载的状态都变为刷新到磁盘,()文件将永远保留在那里,并且在文件下载后不会将文件写入hd

这是一个与跳过在高级首选项中启用partfile的文件有关的问题


关闭零件文件或停止跳过文件。

这就是我所说的卡夫卡式解释。我有一个后续问题,即当未刷新到磁盘时,write()如何使数据对其他进程可见?@charlesduffyprocess不直接进入磁盘,它们使用
read()
syscall。
read()
知道首先检查内存中的缓存。嗯?这似乎表明内容永远不会进入磁盘;这不是真的。