4 ms·
I’m imagining a software solution using some form of journaling / checkpoints. Instead of overwriting data in-place, send all writes to fresh, unused storage an
by josephg 3y ago
I’m imagining a software solution using some form of journaling / checkpoints. Instead of overwriting data in-place, send all writes to fresh, unused storage and then “commit” by updating a pointer to avoid write amplification. You’d need a bit of extra machinery to handle reads on the old data. As I understand it, NVMe drives already send all writes to unused space and then update pointers to reclaim old capacity.
We could start with a nice implementation in the OS. Probably with a way for applications to opt in and out. And then optimize over time. Optimizations could include better integration with the way NVMe devices actually work, rather than the way they pretend to work to the rest of your computer.
- cobalt 3y agofile systems already do journaling and a bunch of other fancy techniques. Drives themselves then have their own versions in addition to that Additionally, apps can do whatever they want in custom partitions if they need better storage perf (databases for example do this). Getting lower level than that is probably doable, but you run the risk of becoming firmware that is tied to particular drive controller design Remember that computer storage technology is over 70 years old, many many things have been tried/implemented in that time.
- josephg 3y agoFile systems only do journaling for their own metadata. Has this been tried? It seems like an obvious idea to me, but operating systems have evolved remarkably little in the last few decades. Especially the filesystem.
- cobalt 3y agohttps://en.wikipedia.org/wiki/USN_Journal https://en.wikipedia.org/wiki/USN_Journal