语境
这纯粹是出于教育目的。我想写一个原始数据库。重点不在性能上;但是只是数据库背后的原理。我已经掌握了有关锁定/互斥/事务的内容。我一无所知的是写入磁盘/保证意外硬件(例如电源)故障时的持久性。
为了具有适当的恢复/持久性,将文件写入磁盘时需要一定的保证。
题:
出于以上目的,我需要什么类型的文件原语(保证将文件写到磁盘?将文件保持打开状态并追加到日志?)? JVM提供什么?
谢谢!
最佳答案
由于当今围绕光盘的抽象层很多,因此需要讨论的地方很大,尽管从JVM的角度来看,您几乎完全依赖于fsync将位实际写入磁盘,一旦调用fsync,则取决于这些位在光盘上。其余部分以此为基础。
关于java - Clojure:用于实现数据库持久性的Java FileSystem原语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11217618/