Ok.. But I sqlite can still check the number of db connections open and optimise the checking=> as long as there is only one writer, do not check for hot journals.
Can a database have two connections opened with two different journal modes ? On Wed, Aug 10, 2011 at 11:35 PM, Pavel Ivanov <paiva...@gmail.com> wrote: > > If you have one reader and many writers, consider PRAGMA > journal_mode=WAL; > > Richard meant "one writer and many readers" of course. > > >> If the other process opens the db connection as read_only, will the hot > >> journal check be still done (during queries operations of the second > >> process)? > >> > > > > How is the second process suppose to know whether or not the other > process > > used read_only? > > And even those who opened db connection as read_only will check for > hot journal before executing any query. > > > Pavel > > On Wed, Aug 10, 2011 at 1:44 PM, Richard Hipp <d...@sqlite.org> wrote: > > On Wed, Aug 10, 2011 at 1:35 PM, Sreekumar TP <sreekumar...@gmail.com > >wrote: > > > >> Ok, its getting a bit clear. > >> If there is only one process that is writing to the database, but has > more > >> than one process that reads the database, the locking mode can still be > >> exclusive ? > >> > > > > PRAGMA locking_mode=EXCLUSIVE; means "exclusive'. Only one process can > > access. > > > > If you have one reader and many writers, consider PRAGMA > journal_mode=WAL; > > > > > > > >> If the other process opens the db connection as read_only, will the hot > >> journal check be still done (during queries operations of the second > >> process)? > >> > > > > How is the second process suppose to know whether or not the other > process > > used read_only? > > > > > >> > >> > >> > >> > >> On Wed, Aug 10, 2011 at 10:54 PM, Richard Hipp <d...@sqlite.org> wrote: > >> > >> > On Wed, Aug 10, 2011 at 1:09 PM, Simon Slavin <slav...@bigfraud.org> > >> > wrote: > >> > > >> > > > >> > > On 10 Aug 2011, at 6:01pm, Sreekumar TP wrote: > >> > > > >> > > > Thanks for the explanation. The journal mode was OFF which means > >> there > >> > > is > >> > > > no journal file created. So why is it the check still performed ? > >> > > > >> > > Because the journal mode might have been 'ON' the last time that > >> > database > >> > > was used. > >> > > > >> > > >> > More importantly, the journal mode might be 'ON' in the other process > >> that > >> > crashed in the middle of a transaction. > >> > > >> > > >> > > >> > > > >> > > > On Wed, Aug 10, 2011 at 10:24 PM, Richard Hipp <d...@sqlite.org> > >> wrote: > >> > > > > >> > > >> On Wed, Aug 10, 2011 at 12:40 PM, Sreekumar TP < > >> > sreekumar...@gmail.com > >> > > >>> wrote: > >> > > >> > >> > > >>> The 179148 failures on 'access' system call is due to access > check > >> of > >> > > two > >> > > >>> files - the journal file and the wal-file. > >> > > > >> > > Well, the file is obviously not being opened 179148 times. I > thought > >> it > >> > > checked for these files only when sqlite3_open() was being run. Is > it > >> > > checking for these files every time a command is executed ? Surely > >> that > >> > is > >> > > unnecessary and a source of a large reduction in speed. > >> > > > >> > > >> > SQLite must check for hot journals at the start of each transaction. > >> > > >> > Or, more precisely, SQLite must check for hot journals whenever it > starts > >> > reading the database again after a period of time when another process > >> > might > >> > have been writing to the database (and might have crashed while > writing). > >> > > >> > That's when PRAGMA locking_mode=EXCLUSIVE blocks the hot-journal > checks. > >> > If > >> > your process has exclusive access to the database, it is not possible > for > >> > another process to write to the database (and crash in the middle of > >> > writing). > >> > > >> > > >> > > >> > > > >> > > Simon. > >> > > _______________________________________________ > >> > > sqlite-users mailing list > >> > > sqlite-users@sqlite.org > >> > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > >> > > > >> > > >> > > >> > > >> > -- > >> > D. Richard Hipp > >> > d...@sqlite.org > >> > _______________________________________________ > >> > 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 > >> > > > > > > > > -- > > D. Richard Hipp > > d...@sqlite.org > > _______________________________________________ > > 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