现在的硬盘越来越多地使用重排序缓存,有时甚至完全忽略缓存刷新来提高性能值。
在这种情况下,是否有可能保证原子性(事务)和一致性?是否有任何已知的方法可以缓解缓存问题?我读过一篇关于这个主题的论文,其中创建了一个名为"强制缓存驱逐"的解决方案来解决日志文件系统的问题。这基本上包括用新的写操作填充缓存,从而刷新缓存。然而,这并不是一个适用于所有情况的实际解决方案,因为有些情况下冲洗需要几秒钟。更多的信息很难获得。
这是一个很晚的回复,但我想我应该回答以防其他人遇到同样的问题。
我是研究强制缓存清除(CCE)的研究生之一。我很乐意回答你的任何问题。我同意对于具有复杂缓存的驱动器,CCE可能会花费大量时间来刷新缓存。
我们设计了一个新的文件系统,叫做无顺序文件系统(NoFS),它从设计上就避免了这个问题。在这个文件系统中,即使文件系统运行在不支持flush命令的磁盘上,也可以保持一致性。您可以在这里阅读更多内容:http://pages.cs.wisc.edu/~vijayc/nofs.htm
不幸的是,NoFS目前不提供事务。我们现在正在威斯康星大学麦迪逊分校研究这个问题。