On May 27, 2010, at 8:07 PM, Pavel Ivanov wrote:

>> That's true, except for the case when exclusive lock fails; at  
>> least that's
>> what Dan Kennedy says to my question from a couple of years ago:
>> http://old.nabble.com/changes-in-cache-spill-locking-since-3.5.9--td20564357.html#a20564357
>
> It's interesting feature, I didn't know about that. It would be also
> useful to know will acquiring of EXCLUSIVE lock be re-attempted after
> failure at some point during this transaction with indefinite cache
> growing? If yes then how often SQLite will retry?

It will retry the EXCLUSIVE lock each time a page that is not
in the cache is required by SQLite (a "cache-miss").

Since at this point SQLite has a PENDING lock on the database,
no new readers can connect. So once all existing readers have
finished, the writer will be able to upgrade to an EXCLUSIVE
and free memory by writing dirty pages to the db file. In other
words, the cache will not continue growing after the readers
have unlocked the database.

Dan.




> On Thu, May 27, 2010 at 8:48 AM, Igor Sereda <ser...@gmail.com> wrote:
>>
>> Pavel,
>>
>> Thanks for the reply! I was afraid using pcache would be the only  
>> way :)
>>
>> As for this:
>>
>> Pavel Ivanov-2 wrote:
>>>
>>> No way. Cache won't ever grow just because you have large  
>>> transaction.
>>> It will only be spilled to disk and exclusive lock will be taken but
>>> never trigger unbound growth.
>>>
>>
>> That's true, except for the case when exclusive lock fails; at  
>> least that's
>> what Dan Kennedy says to my question from a couple of years ago:
>> http://old.nabble.com/changes-in-cache-spill-locking-since-3.5.9--td20564357.html#a20564357
>>
>> I guess that's an undocumented feature.
>>
>> Cheers,
>> Igor
>> --
>> View this message in context: 
>> http://old.nabble.com/Using-cache-stats-to-balance-transaction-size-for-optimal-performance-tp28690967p28693594.html
>> Sent from the SQLite mailing list archive at Nabble.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

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

Reply via email to