ok thank you, today I'm going to port the difference to my source code 
and I'm going to try if the memory it's ok

Il 09/09/2010 9.37, Dan Kennedy ha scritto:
> On Sep 9, 2010, at 1:12 PM, Michele Pradella wrote:
>
>>   Hi, do you have some news about the wasted memory? have you found the
>> reason for the windows backend?
> Fixed here:
>
>     http://www.sqlite.org/src/ci/f213e133f6
>
> Does the problem still show up for you using fossil tip?
>
>
>
>
>
>
>> do you think it could be due to the windows implementation of the
>> mmap?
>>
>> Il 02/09/2010 16.46, Richard Hipp ha scritto:
>>> On Thu, Sep 2, 2010 at 9:59 AM, Marcus Grimm<mgr...@medcom-
>>> online.de>wrote:
>>>
>>>> Michele Pradella wrote:
>>>>>    ok, I'll wait for the walk around.
>>>>> I always use a BEGIN; COMMIT; transaction but often, after a
>>>>> COMMIT; the
>>>>> -wal file does not change in size, it seams it's not checkponted.
>>>>> Anyway do you think that with WAL journal mode I should continue
>>>>> to use
>>>>> BEGIN; COMMIT; statement? or not?
>>>> as Richard mentioned, the wal mode is not intended to work well
>>>> for bulk-insert kind of actions. You may try to split your insert
>>>> cycles into smaller pieces.
>>>>
>>>> However, that might not help if you do sql statements which involve
>>>> a huge implicit transaction, for example "CREATE INDEX .." on a
>>>> huge table.
>>>> At least on windows it can fail with IO error on a GB sized db.
>>>>
>>> We are working on that problem.  In the meantime, your workaround
>>> is to
>>> switch to journal_mode=DELETE before creating large indices.
>>>
>>>
>>>> Btw, I think the wal file doesn't shrink because sqlite doesn't
>>>> truncate
>>>> that file after completing the checkpoint. That's by design I guess.
>>>>
>>> Correct.  The -wal file is deleted when the last connection to the
>>> database
>>> is closed.  But prior to that, the WAL file is kept open and is not
>>> truncated.  This is a performance optimization.  Most filesystems
>>> are faster
>>> at overwriting an existing file than they are at appending to the
>>> end of a
>>> file.  (Note the qualifier "Most" in the previous sentence.  There
>>> are
>>> exceptions to the rule.  We try to optimize for the common case.)
>>>
>>>
>>>> Marcus
>>>>
>>>>
>>>>
>>>>> Il 02/09/2010 14.43, Richard Hipp ha scritto:
>>>>>> 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
>>>>>>>
>>>> _______________________________________________
>>>> sqlite-users mailing list
>>>> sqlite-users@sqlite.org
>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>>
>>>
>>
>> -- 
>> Selea s.r.l.
>>
>>
>>         Michele Pradella R&D
>>
>>
>>         SELEA s.r.l.
>>
>> Via Aldo Moro 69
>> Italy - 46019 Cicognara (MN)
>> Tel +39 0375 889091
>> Fax +39 0375 889080
>> *michele.prade...@selea.com*<mailto:michele.prade...@selea.com>
>> *http://www.selea.com*
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>


-- 
Selea s.r.l.


        Michele Pradella R&D


        SELEA s.r.l.

Via Aldo Moro 69
Italy - 46019 Cicognara (MN)
Tel +39 0375 889091
Fax +39 0375 889080
*michele.prade...@selea.com* <mailto:michele.prade...@selea.com>
*http://www.selea.com*
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to