commit - f923f0253af63c48b2b8df7d3da6727116b20076
commit + 22d4fa8e3e478b48d456bd21bab50570d131affb
blob - 7279944faea1fd360a270e4a5296980a9b5f2e45
blob + 4bd468155a94ba500080d38f69ed3e2cab91f31f
--- README.md
+++ README.md
is a FUSE-based fault injection filesystem that allows to change
fault-injections in runtime.
+### Simulation of real errors
+
+- https://danluu.com/file-consistency/
+- see Phoebe https://github.com/gluckzhang/phoebe
+- All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications
+https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf
+https://www.usenix.org/sites/default/files/conference/protected-files/osdi14_slides_pillai.pdf
+- https://www.snia.org/sites/default/files/files2/files2/SDC2013/presentations/TestingMethodologies/VinodEswaraprasad_Software-Based_Fault-Storage-v1-0.pdf
+- http://pages.cs.wisc.edu/~gibson/pdf/fault-injector.pdf
+- A survey on simulation-based fault injection tools for complex systems
+https://hal-auf.archives-ouvertes.fr/hal-01075473/document
+- Describe a reasons to test with noop for `fsync(2)` [^1] and [^2]
+- Eat My Data: How Everybody gets File IO Wrong
+https://www.youtube.com/watch?v=LMe7hf2G1po
+https://www.slideshare.net/nan1nan1/eat-my-data
+
+[^1]: https://docs.virtuozzo.com/virtuozzo_hybrid_server_7_installation_guide/preparing-for-installation/planning-storage-gui.html#planning-node-hardware-configurations
+[^2]: https://www.postgresql.org/docs/current/wal-reliability.html
+
Supported fault injections are:
- `errinj_noop` - replace file operation with no operation
$ ls -la
$ umount /tmp/fs
```
+
+### Performance
+
+- [To FUSE or Not to FUSE: Performance of User-Space File Systems](https://www.usenix.org/conference/fast17/technical-sessions/presentation/vangoor)
+- [Performance and Resource Utilization of FUSE User-Space File Systems](https://dl.acm.org/doi/fullHtml/10.1145/3310148)
+- [Performance and Extension of User Space File Systems∗](https://core.ac.uk/download/pdf/193586624.pdf)
+- TODO: `FUSE_PASSTHROUGH`, see https://lkml.org/lkml/2020/8/12/547
+- TODO: https://chubaofs.readthedocs.io/en/latest/user-guide/fuse.html