One of the issues with computer crashes is not so much that the machine has crashed—often a mere inconvenience—but that data was lost in the process.
While the computer is writing its ones-and-zeros, it loses track of what it's written and what it hasn't, and data becomes corrupted. It's been a problem since magnetic storage was invented.
However, MIT researchers think they've got a solution. They say that they've invented a file system that is guaranteed not to lose any data in a crash.
MIT's system uses mathematics to verify the data. It's based on a known technique called formal verification that in this case applies to the file system. The reliability of the file system is established through the formal verification process.
Formal verification is a way of proving or disproving correctness using mathematics.
"The acceptable bounds of operation for a computer program" are defined mathematically. Then the system proves that the "program will never exceed them," says Larry Hardesty of the MIT News Office, writing on its website.
The scientists say their system is slow, but that the concept behind the verification technique can be enhanced eventually, to make more sophisticated designs.
"Making sure that the file system can recover from a crash at any point is tricky because there are so many different places that you could crash," Nickolai Zeldovich said on MIT's website. He is one of the three MIT computer-science professors on the new paper.
"You literally have to consider every instruction or every disk operation and think, 'Well, what if I crash now? What now? What now?'" he says.
Guaranteed no data loss
But the scientists do say that their formal verification technique is guaranteed not to lose data.
They say that their method proves "properties of the file system's final code, not a high-level schema," says Hardesty.
Therefore, it's better than anything else—although it is complicated and has been difficult to achieve.
For one thing, they've had to develop what's called a "proof assistant," which provided a formal language for the system and relationships. Proofs are used around mathematics as a kind of sequence to verify things.
"Proofs are checked against the actual file system, not some whiteboard idealization that has no formal connection to the code," Adam Chlipala, another professor, says on the website.
Another complication that they had to deal with was describing the relationships "between the behaviors of these different components under crash conditions," Hardesty explains.
Determining that "the file system did, in fact, adhere to the logical relationships described in the proof," was another element to the work, Hardesty says.
Sign up for CIO Asia eNewsletters.