3 ms·
Try https://danluu.com/file-consistency/ https://danluu.com/file-consistency/ for one point: the filesystem isn't really even viable for data persistence. The
by gue5t 9y ago
Try https://danluu.com/file-consistency/ https://danluu.com/file-consistency/ for one point: the filesystem isn't really even viable for data persistence.
The filesystem's "you can only persist uninterpreted bytes" policy means software can't maintain any kind of data invariant across runs; everything has to be revalidated if your process ends.
ACLs (e.g. unix permissions) are widely regarded as a mistake.
File locking is broken: https://gavv.github.io/blog/file-locks/ https://gavv.github.io/blog/file-locks/
File metadata is easy to accidentally mangle (e.g. atime) and hurts performance (even "relatime" is slower than not causing a write for every read).
The filesystem is used both for users to organize their data files and for sharing of machine-interpreted data between programs (e.g. shared libraries and system configuration). Humans need human-readable names, and machines get confused by humans renaming things (and should probably be addressing by content, rather cryptographically or in terms of type signatures or specifications).
There are no asynchronous syscalls for interacting with the filesystem itself (e.g. `stat()`; for file contents things are onl slightly better).
Probably I'm still forgetting a number of problems, but these come to mind offhand.