This repository has been archived by the owner on Nov 8, 2023. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable the powersafe overwrite assumption.
This change improves performance on certain kinds of transactions such as UPDATEs by allowing SQLite to make stronger assumptions about data integrity on the disk. The powersafe overwrite assumption demands that when a byte is written to a file and a power event occurs then the only bytes that may have been modified are the ones that were being written. In absense of the powersafe overwrite assumption, SQLite assumes that a write of any range of bytes within a disk sector may potentially cause the rest of the sector to be corrupted. SQLite needs to do extra work to compensate for this problem, which adds overhead to certain transactions. On flash devices, writing a byte causes the sector to be rewritten somewhere else on the device. Eventually the old sector may be erased and reused. The powersafe overwrite assumption therefore holds as long as the flash device never leaves behind (observable) half-written sectors in case of a power event. This is a fairly safe assumption to make. Some flash devices apparently include measures to ensure that the last write fully completes when power is interrupted. In any case, the window of opportunity for corruption to occur is very small. Bug: 6484633 Change-Id: I0b0ef664b3a2a0e85c6099f0130d0affc5562be5
- Loading branch information