Hi,

I'm running into a problem where an `END TRANSACTION;` statement takes
several seconds to complete (via sqlite3_profile) on a database in WAL
mode. The transaction was exclusive (i.e. `BEGIN EXCLUSIVE
TRANSACTION;`). The transactions are small with only a ~10 inserts of
small data.

Perhaps relevant: a single concurrent reader is creating/ending
deferred transactions several times a second alongside the writer.

My first thought was that an automatic checkpoint was causing the
transaction to block for so long. However, based on my reading of the
documentation, it appears that all automatic checkpoints are "passive"
and so should not block the checkpointer? I don't see how the writer
is being blocked for so long. Can anyone provide hints on how to
further debug this?

-- 
Patrick Donnelly

Reply via email to