On Thu, Sep 2, 2010 at 8:34 AM, Michele Pradella <michele.prade...@selea.com
> wrote:

>  Hi,
> I found a strange behavior of the sqlite 3.7.2 with WAL journal mode.
> Yesterday I found my application DB with a -wal file of 1,5GB and a -shm
> file of few MB (about 9MB) with a DB file of 1,2GB: in this
> situation I got the process memory wasted by "mapped file" of the -shm
> file. It seams that the file is mapped a lot of times in memory so the
> process memory become 2GB and it can't allocate more memory. In that
> situation operation made on the DB cause I/O disk errors probably due to
> the wasted memory.
>

By coincidence, the SQLite developers were just discussing this problem
earlier this morning.  There are technical issues with windows that make a
solution difficult.  We are trying to come up with a work-around.  (The
problem you describe is specific to the windows backend and does not come up
in unix.)


> I'm doing some other test to reproduce the problem, but I think that
> could be when I got a lot of operation between a BEGIN; COMMIT;
> So is it ok to use the BEGIN; COMMIT; with the WAL journal activated?
> is there some kind of limit in the number of operation between a BEGIN;
> COMMIT; statement?
>

SQLite will not checkpoint the journal until you commit your transaction.
So if you leave the transaction open too long, the WAL file and the -shm
file will grow excessively large.  WAL works best with many smaller
transactions.  If you have one or two big transactions, then using a
traditional rollback-journal mode works better.



> I try to use the PRAGMA wal_checkpoint; to try resolve this situation,
> but seams that command was ignored by sqlite because the -wal file does
> not change in size, even the DB file.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to