5 ms·
> What’s surprising to me is that no file system (even ZFS) or database utilize error correction controls. Maybe I misunderstand your statement, but ZFS has ha
by chungy 7y ago
> What’s surprising to me is that no file system (even ZFS) or database utilize error correction controls.
Maybe I misunderstand your statement, but ZFS has had error correction from the very first versions.
- elcritch 7y agoAFAICT, it only has checksums for data, and multiple metadata copies: https://serverfault.com/a/381918 https://serverfault.com/a/381918 So you’d need raid for error correction.
- garmaine 7y agoraidz{1,2,3} are error correction modes built into ZFS.
- jakeogh 7y agoI suppose you could patch in PAR encoding for data, would that be significantly different than specifying copies=N for data and/or making multiple pools single disk and raiding them?
- ghusbands 7y agoPAR encoding is much more space-efficient than storing multiple copies, though using it efficiently would be really tricky. Though not more tricky than most other filesystem development. If you can indeed RAID-z multiple pools across a single disk, that would give many of the same advantages, without having to duplicate everything. Obviously, it would also greatly affect performance, with every IO operation becoming N operations against one disk.
- jakeogh 7y agoWhy would PAR be tricky to use efficiently? I just see it as a file encoding.
- ghusbands 7y agoIt's only a file encoding if you do it per file, but that removes a lot of the advantages of sharing and minimising the recovery data. PAR is usually across multiple files/blocks, but then you've got to manage this extra data when any part of any of those files/blocks changes. The more complete/parallel your recovery data is, the more you need to update on even a small change to one file. There'd be all sorts of ways to make it more efficient, but it would take some analysis to work out the best trade-offs.
- fuzzy2 7y agoYou don’t need RAID. It’s easy to miss in the answer, but ZFS can be instructed to simply save data up to three times. This is in addition to metadata redundancy.