Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux文件脏页写回顺序_Linux_File - Fatal编程技术网

Linux文件脏页写回顺序

Linux文件脏页写回顺序,linux,file,Linux,File,在Linux中,对于单个文件,脏页写回(磁盘)顺序是什么?是从头到尾吗?还是坏了 场景1:不覆盖 创建文件(在磁盘中)并快速(按顺序)写入大量数据。现在我假设这些将在多个页面缓存中。回写脏页时,是否按顺序回写 e、 g.在文件写入完成之前说服务器关闭 现在重新启动后,我们可以让磁盘文件处于以下状态吗 |--正确的数据--|--数据未设置/垃圾--|--正确的数据--| i、 我知道文件中最后一组字节可能不完整,但中间的数据可能不完整吗 场景2:覆盖(尝试使用类似于循环/环形缓冲区的文件) 在达到

在Linux中,对于单个文件,脏页写回(磁盘)顺序是什么?是从头到尾吗?还是坏了

场景1:不覆盖

创建文件(在磁盘中)并快速(按顺序)写入大量数据。现在我假设这些将在多个页面缓存中。回写脏页时,是否按顺序回写

e、 g.在文件写入完成之前说服务器关闭

现在重新启动后,我们可以让磁盘文件处于以下状态吗

|--正确的数据--|--数据未设置/垃圾--|--正确的数据--|

i、 我知道文件中最后一组字节可能不完整,但中间的数据可能不完整吗

场景2:覆盖(尝试使用类似于循环/环形缓冲区的文件)

  • 在达到最大大小“fsync”后创建文件并写入数据 调用(即数据+元数据同步)
  • 现在,文件指针是 移动到文件的开头并按顺序写入数据。 (没有完成fsync)
  • 现在由于服务器关闭,我们可以在重新启动后使磁盘文件处于以下状态吗

    i、 e.对于新数据,某些页面被无序写入磁盘

    我能假设它总是这样吗

    |--新写入的数据-----新写入的数据-----旧数据--|

    i、 e.旧数据和新数据不会混淆(如果现有旧数据仅在文件末尾)

    |--Newly written data--|--Old data--|--New data--|...