Stephen Chrzanowski wrote: > @Rowan; > > First off, whether the OS or SQLite is ACID or not, if you pull the plug on > your hardware, all bets are off on whether it'll BOOT, let alone recover a > single transaction. I get that this could be a useful tool when doing > disaster proofing, but, at that stage in the game of bulletproofing, you > can't win every battle, and you're running into that at 100 miles an hour.
Your expectations are pretty low. On a properly configured Unix host, there's no reason for a powerfail to prevent a successful reboot. E.g., if you mount boot and root filesystems as read-only filesystems, they can never get corrupted. If you're using modern filesystems for your writable partitions (e.g., FSs with journaling) then there's also no reason for them to fail to come back online. So it just comes down to your application code being reliable. I should note that SQLightning has none of the problems being described in this thread - in its default mode, it is full-ACID and a powerfail cannot lose data or corrupt the database. And it does all this while being at least 30% faster on writes than vanilla SQLite. Yes, the OS could have bugs. Yes, the hardware could physically fail. That's pretty rare though; HDDs R/W heads auto-retract on powerfail so unless the entire mechanism actually jammed, there's no way for a powerfail to cause a head crash or any other destructive event. Bottom line - if your OS reboots successfully, there's no excuse for your database to not also come up successfully, fully intact. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/