Hello all,

I've got an odd situation with a project where my WAL file is growing quite
large. I've got page size set to 8192, and I've left all of the WAL pragmas
set to their defaults. I'm seeing the WAL grow to a very large size (several
gigabytes).

My process has 2 threads (reader and writer). The writer thread does a begin
transaction, does several inserts (and possibly a few selects for data
integrity checks), and a commit.

There's a reader process that may be doing sporadic reads during this time,
but it's entirely IO driven and it's hard to believe that there isn't a
point in time that the writer thread isn't allowed to finished a checkpoint
if it started one.

I have these questions:

1. Is checkpointing triggered by auto commit only? Or will it be triggered
by a commit of a large transaction? If I did selects within the transaction,
would it prevent the checkpoint?
2. One possibility here is that I'm leaking a read transaction somewhere. Is
there a nice way to query whether or not there's a read lock? (e.g. I leaked
a stmt object)

Thanks!
--erik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to