I need a C programmer to implement a safe block storage algorithm.
1. Must compile with MS Visual C++ 2008 and later, compile targets 32 and 64 bit X86
2. Must be 100% portable and byte-compatible between compilers and X86 / X64 targets.
3. Must be power-out safe: the pointer table for currently written block must be updated atomically. The pointer table itself must be well protected against power-out (duplication)
4. Minimize disk seek time - distributed pointer tables close to actual data
For a general idea of what is to be implemented, see FAT (DOS filesystem) or VirtualBox VDI file format - but I need a somewhat more effective solution which doesn't require so much seeking of disk heads (distributed pointer tables).
Storage block size is customizable.
The actual storage format / structures are up to the programmer for minimalistic implementation, but they must be well separated in code for adaptation to my existing design.
Expected result is a fully compilable, well-commented source using no additional libraries and not violating any existing copyrights. Also a compiled rudimentary example application + source demonstrating power-out in the critical paths.
Copyright will be transferred to me upon project completion. This is part of a larger closed-source project.