关于顺序写入的文件系统的一致性保证

时间:2015-03-07 04:41:17

标签: io language-agnostic consistency os-agnostic

我的程序(只有1个进程和1个线程)使用普通的旧系统调用顺序将n个连续的数据块写入HDD(常规类型的HDD)上的文件。它就像某种仅附加日志文件。

在系统崩溃(电源故障,而不是HDD故障)之后,我回读并验证块[i](0

在块[i]完全写下之前,我是否可以安全地假设所有其他块?或者存在一个(或许多)块[j](0

1 个答案:

答案 0 :(得分:1)

是的,写入顺序(写给你)的写入可以在写入磁盘之前重新排序,主要是因为代码(甚至操作系统)看到的顺序可能不直接对应磁盘上的位置。

虽然IDE磁盘(一次)使用基于指定可存储数据的磁道,磁头和扇区的寻址,但是它们很久以来转换为只有一些扇区的系统并且它可以按照有意义的顺序排列磁盘。它通常表现相当不错,但在某些情况下(特别是如果一个扇区变坏并被备用扇区取代),最不合理的是编写扇区。