> I'd appreciate it if anyone could let me know if this pragma still > works and how to use it if so.
You can get away without pragma. Just implement your own VFS which will redirect all calls except lock-related to the standard VFS. Lock-related methods would be implemented as no-op and thus won't cause any performance problems. Pavel On Thu, Feb 17, 2011 at 4:36 PM, Mike Lin <m...@mit.edu> wrote: > Dear all, > > I have a large SQLite database with genomic data which is strictly > read-only at this point, and in direct spite of the FAQ I intend to > query it concurrently on a network FS. Our parallel FS ought to be > able to handle a heavy read workload from our cluster, based on past > experience, but acquiring read locks seems to cause a bottleneck. I > have found a few mentions of an experimental 'pragma omit_readlock' > which seems just right for this situation, but I have not been having > luck making it work so far. > > I also found the following June 2009 e-mail to this list from Joerg > Hoinkis that seemed to make some progress by digging into the SQLite > source, but did not get any replies. I have similarly tried some > obvious things like opening my database with SQLITE_OPEN_READONLY and > making sure my file's permissions are 444. > > I'd appreciate it if anyone could let me know if this pragma still > works and how to use it if so. > > Thanks, > Mike Lin > > >> Hi! >> >> I'm trying to access a readonly database without locks, using the >> amalgamation of SQLite 3.6.14.2 >> >> After I opened the database with flags = SQLITE_OPEN_READONLY I perform >> >> sqlite3_exec (db, "PRAGMA omit_readlock=ON", 0, 0, 0); >> >> I traced that down into the amalgamation to the point where the database > >> flag is set in flagPragma... >> >> db->flags |= p-mask; >> >> So I can be sure the pragma syntax is correct. >> >> >> Now when I execute a SELECT statement, it is parsed and I run into >> pagerSharedLock, but >> the pager->noReadlock variable is 0. As a result the database file gets >> locked. >> >> >> It look like the initialization of the pager->noReadlock flag, but that >> happens when the database is >> opened. > > I messed up the last sentence, better: > > It looks like the initialization of the pager->noReadlock flag only > happens > when the database is opened, but by that time the omit_readlock pragma is > not active. > >> >> Am I doing something wrong or did this ("Very experimental") feature got > >> lost in past refactorings? >> >> >> Thanks for listening & in advance to any hints > > Joerg > _______________________________________________ > 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