On Wed, Sep 29, 2010 at 3:20 PM, Erik Fears <[email protected]> wrote:
> sqlite-users, > > Here's my test environment: > > -RHEL 5 on a vmware server (trying to move this to ESX) > -C++ with 3 threads. One of them a write thread, one a main reader thread, > and one a diagnostic reader thread > -journal-mode=WAL > -no change to default synchronization mode > > The write thread is updating a fairly small (< 1k) blob on one table. I can > see the change on my diagnostic reader thread, but my main reader thread > appears to be acting on an old copy. It has no application side caching, so > would be doing a SELECT everytime it needs this data. It appears to have an > old copy of this data until I restart the daemon > My guess is that you are holding a transaction open on the reader thread. As long as you have a transaction open, the reader will continue to see the state of the database as it existed when the transaction was first started - no updates will be visible to that reader, though the updates will be visible to other readers who start their transactions after the update occurs. This is a (very deliberate and desirable) feature, not a bug. > > Are there known consistency/timing issues with WAL? I'm wondering if vmware > server's outdated disk support is causing any issues. > > More importantly, this is pretty hard to diagnose and catch. Are there any > sqlite side logging or diagnostics I can enable that will help me prove > where the bug lies (my code, sqlite, vm)? I have sqlite side logging > enabled. I've played around with sqlite3_trace, but that only appears to > log > queries and not results. > > Thanks! > --erik > _______________________________________________ > sqlite-users mailing list > [email protected] > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp [email protected] _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

