SQLite BEGIN DEFERRED, IMMEDIATE, and EXCLUSIVE: Handling SQLITE_BUSY Mid-Transaction
Why a mid-transaction write in SQLite can fail with SQLITE_BUSY despite busy_timeout, how BEGIN IMMEDIATE moves contention to the start, and what to retry at each failure point.
sqlitetransactionsconcurrencydatabase