4 ms·
We discovered this through our use of O_DSYNC, and O_SYNC also has the same problem. I think that for macOS so far, the focus has been on ordering guarantees,
by _vvhw 4y ago
We discovered this through our use of O_DSYNC, and O_SYNC also has the same problem.
I think that for macOS so far, the focus has been on ordering guarantees, i.e. write barriers to reset the disk back to some atomic point in time after a crash.
However, for distributed databases like TigerBeetle, we also need durability guarantees, i.e. be able to know that the disk has the data down cold, that the disk won't “forget” data that the node has underwritten and ACK'ed externally.