Thanks for your detailed reply. Would you mind answering my follow up queries?
> The ability to disable journaling is not a supported behaviour of > SQLite. If you can get it to work, that's great. But if not, that > is not considered a bug. Ok so the ability to not be able to disable journaling is not a bug. However would you consider implementing this as a new feature in a future revision of SQLite? I am unsure how many other users would find the disabling of the journal file a useful feature? I know here we would really appreciate this. We have seen information on the web indicating that turning off journaling would help performance, See section 3.3 at http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html. Although it does not state a mechanism for doing so. So maybe there are other users that would appeciate this as well as us? Indeed not journaling the file did help performance a great deal, but of course we have to prioritise data integrity over speed. We do believe however that journaling the database for us is of no benefit as our filing system is 100% fail safe and will return to the last flushed state of the file on power loss. Ideally we want to be able to use the latest versions of SQLite as they are released and as such don't want to stay with 3.2.1 especially as we may have been inadvertently benefiting from what was actually a bug anyhow. Regards Mark > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: 01 November 2005 11:49 > To: sqlite-users@sqlite.org > Subject: Re: [sqlite] disabling journalling of the database - side > affects? > > > "Allan, Mark" <[EMAIL PROTECTED]> wrote: > > I definately have a problem when I disable journalling on > version 3.2.7 > > of SQLite. I dont see the same problem with 3.2.1 of SQlite. > > I disable the journalling of the database file as described in my > > earlier email. > > With version 3.2.7 this causes SQlite to not sync the database file > > after some updates (i.e. sqlite3OsSync() is not called). This means > > that if power is lost before the database file is explicitly closed > > we are losing those changes. > > > > I realise that the purpose of the journal file is to allow > the database > > to return to its last valid state if power is lost during an update, > > however we believe that in our system we will not need this as our > > flash filing system is 100% power safe. i.e. it will return to the > > last flushed state of the file on power loss. So we believe that not > > only is the journalling of the database time consuming it is also > > unnecessary for us, which is a little annoying. > > > > If this is a bug in 3.2.7 of SQlite can it be fixed? If I cannot > > disable the journal file safely by the mechanism described in my > > previous email then can somebody please indicate how I can disable > > journalling of the database safely. > > > > The ability to disable journalling is not a supported behavior of > SQLite. If you can get it to work, that's great. But if not, that > is not considered a bug. > > The omitJournal flag on sqlite3BtreeFactory() is used for transient > tables that are never rolled back and which we do not care about if > there is a program crash or power failure. The system should never > call sqlite3OsSync() on such files because sqlite3OsSync() is an > expensive operation (on most platforms) and for a transient file > it does not accomplish anything useful. If version 3.2.1 was calling > sqlite3OsSync() on unjournalled files, then that was a performance > bug. I have no specific memory of fixing that problem in 3.2.7, but > a lot of little problems were fixed in between those two releases, > so it seems plausible that this was one of them. > > So my best guess is that if your journal-less use of SQLite worked > with version 3.2.1 then that was due to a bug in 3.2.1 that has > since been fixed - not a bug that has been introduced. > > -- > D. Richard Hipp <[EMAIL PROTECTED]> > > > DISCLAIMER: This information and any attachments contained in this email message is intended only for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential, and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution, forwarding, or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by return email, and delete the original message immediately.