写入缓存和写入顺序
假设我们有一些二进制文件 (.log) 和写入操作序列,例如 log1、log2、log3,每个文件都有一些块大小 n(原始数据)。
问题:即使我的缓存级别(磁盘硬件和操作系统级别)很少,我能否确定 log1、log2 和 log3 序列可以按照正确的顺序写入一个文件中?
更新 非常感兴趣的是,如果我们出现软件或硬件故障(重新启动或其他原因),记录顺序(而不是记录)会发生什么。
更新 可能会有一定比例的写入失败,但主要问题是:写入顺序会保持正确吗?
Let's say we have some binary file (.log), and sequence of write operations, for example log1, log2, log3 and each has some block size n (raw data).
question: can I be sure that log1,log2 and log3 sequences can be written in the correct order in ONE file, even if i have few cache levels (disk hardware and OS level)?
update
very interested in what will be with records order (not with records) if we have software or hardware failure (reboot or another reason).
update
there can be some percent of write failures, but main question is: will write order stay correct?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于文件系统。如果您使用事务性文件系统(例如事务性NTFS)执行某些操作,那么您将获得一定的保证。如果您不使用事务性文件系统,那么您对硬件故障情况下发生的情况的保证就少得多。
It depends on the file system. If you are doing something with a transactional file system (e.g. Transactional NTFS) then you get certain guarantees. If you aren't using a transactional file system, then you get far less guarantees about what happens in hardware failure situations.