Thank you for pointing out the omitJournal argument to sqlite3BtreeFactory!
That's just what I was looking for.

By forcing omitJournal to 1 in all cases (thereby always turning off
journaling), I was able to increase the total speed of my application by a
factor of 2.5 over the speed I got by just removing the call to
FlushFileBuffers (which by itself provided a speed-up factor of 20).

So by removing journaling, my application runs 50 times as fast as it does
with journaling enabled!

I don't know how much write performance matters to others, but increasing
the speed of an application by a factor of 50 is worth looking into.

Aladdin Lamp wrote:

In order to disable totally journaling, I think (to be confirmed by real
sqlite experts though) that you could patch each 4 calls to the function:
    int sqlite3BtreeFactory(const sqlite3 *db, const char *zFilename, int
omitJournal, int nCache, int flags, Btree **ppBtree); using always 1 as the
third parameter (omitJournal) instead of 0 in the following files:
- attach.c (line 136)
- build.c (line 3212)
- main.c (line 1025)
(- and in vdbe.c (line 2611) but omitJournal argument already equals 1 in
this file)

Keep us informed if this works.
Aladdin


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to