Comment by jws

13 years ago

In days of old from ACID was dreamt of, computers were built head to tail by giant engineering firms largely with three letter names. In those days, when you wrote to disk, it was on disk. If you handed it to a subsystem to write to disk, you could believe the answer because your people built that subsystem and it had better do what you wanted.

Now, computers are built with subsystems from a half dozen different companies, none of which can be bothered to fully document their product's behavior. Product life cycles are so fast it isn't worth working out what a device actually does, because by the time you do you either won't be able to buy it anymore, or someone's new iteration will be 20% cheaper/faster/bigger and you will get killed in the market if you don't switch to it.

PS: We were also happy to have a whole MIP of Vax equivalent (or identical) processing power, and I was slightly reknowned for my ability to code cleverly enough to get 42 disk IO/second out of our main disk drive, so I'd rather not go back, think you very much. I'll get along as best I can with the miraculous and inexpensive rubbish we build our systems from today.

> when you wrote to disk, it was on disk.

So, if the drives didn't lie about a flush that problem is solved. But if it's on disk at time t, that's no guarantee that you can read it back at time t+1. The drives can physically fail. These "days of old" are before my time, but I really doubt they had magic disks that never physically degraded.

  • The D is "durable", not "will survive the apocalypse along with the cockroaches". I've got plenty of things I'd describe as durable while being capable of breaking.

    • Right. I guess I was just trying to point out that most instances of an sqlite corruption are probably not going to be the drive lying about a flush, or an interrupted write. It's going to be a disk that gives you back different bits than you (successfully) put in.