SnapRAID was created following the Unix philosophy: Write programs that do one thing and do it well.
The first design principle was reliability. The result is a simple architecture and an easy to understand implementation, following the Dijkstra quote Simplicity is prerequisite for reliability.
Extensive and automated tests with the runtime checker Valgrind and with the Google Sanitizers are done to ensure the correctness of the final application. The test has a code coverage of over 90%, measured with lcov, and it's run after any code change using Travis-CI.
The second design principle was robustness.
It supports any kind of problem. Even on kernel panics, power-downs
or any other hard failure at runtime, your redundancy data is in safe hands.
It uses all the possible storage techniques to ensure to always keep consistent redundancy even after critical interruptions.
The third design principle was efficiency. It's a native C application highly optimized using all the possible OS services to ensure the maximum throughput of you disk array.
For integrity checks is used the highly efficient murmur3 and SpookyHash hashes at 128 bits. For the redundancy computations we use a RAID library written from scratch that supports up to six levels of parity delivering top-notch performance. The library design is originally based, and also binary compatible, with the Linux Kernel RAID library made by H. Peter Anvin. As internal data base it's used the TommyDS library of data structures.