Today I saw a APSW note about shared cache mode at "";, which led me to "";.

Reading the sqlite page at ""; I see that section "2.2. Table Level Locking" is not very clear or straight-forward. One must read between the lines and surmise in order to understand that the sqlite connection timeout (or callback) mechanisms become useless in this mode in a multi-threaded program. It would be useful if there was a statement that the normal mechanism is rendered useless and that the calling thread must implement its own busy-wait if it must succeed.

The problem report was closed as "works as designed" (works as implemented?).

If the normal busy-wait or callback mechanisms are not supported, then it becomes prohibitive to enable this mode on an existing code base.

Given that each sqlite connection duplicates the entire database schema in RAM, this shared cache mode becomes quite useful on limited memory systems. It would be good if it worked `properly'.

Bob Friesenhahn,
GraphicsMagick Maintainer,
sqlite-users mailing list

Reply via email to