Documentation Source Text

Artifact Content

Artifact 7271e53c21fa8010b2ffdd5c8324981b10afba637d7380c38fae543501b630e6:

<title>SQLite Is Transactional</title>
<tcl>hd_keywords {power-safe transactions} {transactional} {power-safe}</tcl>

<h2>SQLite is Transactional</h2>

<p>A transactional database is one in which all changes and queries
appear to be
Atomic, Consistent, Isolated, and Durable
([ | ACID]).
SQLite implements 
[ | serializable]
transactions that are atomic, consistent, isolated, and durable,
even if the transaction is interrupted by a program crash, an
operating system crash, or a power failure to the computer.

We here restate and amplify the previous sentence for emphasis:
All changes within a single transaction in SQLite either occur
completely or not at all, even if the act of writing the change
out to the disk is interrupted by
<li>a program crash,</li>
<li>an operating system crash, or</li>
<li>a power failure.</li>

The claim of the previous paragraph is extensively checked in the
SQLite regression test suite using a special test harness that 
simulates the effects on a database file of operating system crashes 
and power failures.

<a href="atomiccommit.html">Additional information</a>