> I see that as likely, but have not read enough code or docs to see how SQLite determines that a page cache has become stale. But I find it hard to imagine that it would go to the persistent store to determine that, as that would reduce the performance of the cache significantly. Since a transaction is required before any read can be made from the database, the action of starting a read transaction, as far as I can see, will check the data_version so that the cache can be marked stale (discarded) before the read transaction is started. Once a read transaction is started the database cannot be updated so there is no need to check the data_version again until the next transaction is started on that connection.